package com.bh.jd.api;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSONObject;
import com.bh.jd.bean.JdResult;
import com.bh.jd.bean.goods.CategoryList;
import com.bh.jd.bean.goods.CategoryVo;
import com.bh.jd.bean.goods.Check;
import com.bh.jd.bean.goods.CommentSummarys;
import com.bh.jd.bean.goods.Detail;
import com.bh.jd.bean.goods.GiftsResult;
import com.bh.jd.bean.goods.MessageAddOrDelete;
import com.bh.jd.bean.goods.MessageResult;
import com.bh.jd.bean.goods.PageNum;
import com.bh.jd.bean.goods.SearchResult;
import com.bh.jd.bean.goods.SellPriceResult;
import com.bh.jd.bean.goods.SimilarSku;
import com.bh.jd.bean.goods.Sku;
import com.bh.jd.bean.goods.SkuByPage;
import com.bh.jd.bean.goods.SkuImage;
import com.bh.jd.bean.goods.SkuStatus;
import com.bh.jd.bean.goods.Stock;
import com.bh.jd.enums.GoodsEnum;
import com.bh.jd.util.JDUtil;
import com.bh.utils.HttpUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class JDGoodsApi {
	private static final Logger logger = LoggerFactory.getLogger(JDGoodsApi.class);
	//3.1 获取商品池编号接口
	public static List<PageNum> getPageNum(){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_PAGE_NUM.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = new Gson();
		JdResult<List<PageNum>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<PageNum>>>(){}.getType());
		return jdResult.getResult();
	}
	//3.2 获取池内商品编号接口
    public static String getSku(String pageNum){
    	//pageNum:池子编号,值有(1)1095824,3083495,1704536,949411,5256858,5252128,1964546,4662132,4081449,2826374,4098931,5453594,5628964,3526617,207960,3857484,4101056,5324226,5509522,1995109,2018545,2987583,4822422,3679919,5055336,4232651,3369865,2209967,2369907,5366697,4304822,3399953,1335247,680227,1545858,4848278,4692025,1993087,3603415,4675712,3823385,1969099,1881128,4065862,3813432,3021037,1218505,4990911,3503112,2165829,4936587,3664599,1267081,1744006,721703,2931146,1167992,4992793,1258114,4054188,724114,1954188,1042114,4535332,1003837,1898075,1000431,4413315,5338252,2520376,1216100,1704537,4087397,4568228,2168373,4203861,2110736,331349,3473405,3723909,4723092,4331494,2099985,2907443,3180118,3759729,1938889,285662,3748393,779158,3199525,4622739,1896980,4682659,1757256,3588794,3897953,2223019,1141656,512413,2155422,3699623,2380437,952873,2800075,3977077,1726938,1714133,5159324,3432650,5412170,777022,849035,2659935,3579781,1743997,4328018,3339991,2810948,1292965,1197637,768041,3350981,3695493,1178675,4764260,365654,727970,4204586,280908,910159,1561197,4499500,3165644,2020781,4587700,1546827,3022162,4599872,2201829,4536388,2435184,4257196,532278,4665281,3427041,953462,3710086,2564999,608881,2600242,2633733,2888196,183236,4422031,3557850,216128,3886401,3762182,5313250,1009912,3894304,1898086,4310010,2199971,1821873,1546947,3743978,1689327,2186662,2854185,1707408,4007747,4193416,663327,782871,1853708,3517873,3533831,3951723,3583418,4257781,3398724,5059004,3250291,547625,3388852,5373198,1691020,4255502,1470202,633298,5038255,818100,2297564,3313304,376117,2710024,4235201,4331492,11579219,1183278,3670867,12144734,3274589,135468,4020721,5321342,2730559,4796285,848890,1060338,3781209,1311925,1757514,11461218,2368728,2854883,5054066,12109713,1506041,4787573,1209716,855680,4413347,2068868,3868632,2142053,3503298,958909,1681335,2611290,926266,1162131,4902862,680221,2440290,1895988,1065901,4515367,3786784,1916911,4233197,715887,2348696,2141148,1800763,1094955,617154,2383588,4520647,901905,528473,3978681,5388094,2929879,1642000,5009202,287418,4021577,3351529,4118646,1701988,4881136,1135983,1581587,839705,1898868,2943388,1710047,2133324,5227100,1774293,2314853,2225087,4229032,4520163,5204036,5036586,4418437,1831720,5030034,781488,1205285,4070785,4243188,4212051,213642,2670193,1015774,3124286,4316959,2951508,4170717,1626596,4802774,2361717,1419232,436329,1919195,5154612,4771296,1827228,348137,1513018,4227751,4155631,1123427,3883044,906001,4386726,331352,3309187,823020,3539658,2066728,3901153,2168211,5009886,2279759,2155914,4718625,4148692,1578913,819559,4785888,4396142,905721,3897871,582689,3022152,2756389,663338,1823128,598129,3547998,4414652,913223,1133620,228634,100421,3005427,3547003,1040222,4277979,2139539,984884,328404,11514297,3561339,3613055,3243564,2567594,773304,1806865,3487250,4367244,5448739,3408078,3948914,3392203,1030418,3888284,963581,665254,3557620,4720052,1976867,2247927,2736431,3670926,1242670,210082,851580,2311805,3601005,2908716,696804,4325725,3356311,3432654,1816412,187548,585422,497925,3913810,4151805,5256565,3952474,3389896,691791,3065679,1235022,2829509,4347970,3669733,3541241,1462644,4007909,3286010,1137473,4876807,1419242,3106610,1281673,836070,730617,1008341,1228380,5137778,2187061,4646651,1287630,3017777,1288654,4579140,3399473,4534615,1188092,3432164,2141202,1060221,1280519,891133,3969505,5306919,2360310,584300,4167156,4560344,423478,2389406,1003105,332068,4961385,4695759,1209655,5325462,5144025,1609105,4186855,3072666,1322559,4428794,4115789,3555984,1338971,4801518,11319623,1714157,674602,908305,2284463,1093036,4727322,2386353,2279834,3470648,1190252,2439951,5344986,2001961,3600987,563024,1820084,1717383,5039782,1427784,685848,3444015,5192476,1540141,4871348,3887155,4817281,1989595,727042,4495805,2281927,4736647,2132471,1223128,3513141,3203640,4212053,4217390,1082266,416906,3953586,5288502,1477751,5262856,580716,4510072,1250593,3580676,502237,1071533,3512974,1247131,534109,4983774,2198007,207886,642783,3188005,4531725,3034792,5267024,829058,3220215,337505,1270572,3391437,4140154,768912,4695442,5249030,2118949,3100369,2153385,3836207,1298398,1121568,4285176,276077,2924702,3983725,901919,680319,313978,3639239,272823,698652,1670646,298040,4114325,3746922,4443999,3514916,1380195,3549507,1256361,1030875,2417895,1468449,4245237,4003313,5161822,2717765,2831554,4029771,3724815,3301966,5460308,1196930,3128516,4404578,4330238,1060281,1552892,1436708,217570,4955879,1579807,1890477,3822534,4432452,3637317,517811,3356383,2461020,523500,2615908,5104220,345406,3052013,1026968,4985340,670482,4750005,801396,3370156,631643,5076532,2427521,1035733,1319139,1504080,2843658,1879186,1949814,549051,2147347,1209099,4004731,752742,12098391,3990232,695469,4553752,979697,893100,3008557,3126962,891210,1274109,202672,2722595,3832553,1230028,1197729,2917304,3664655,3501802,3981120,5189400,5423816,160144,5092240,2768403,5398424,509170,411095,3303020,3411083,3884259,614298,4039513,4188783,11755904,2999737,5254221,235165,5166311,3012979,1208747,2321276,411070,2375257,5272162,12006637,4441399,4044957,2682089,4140525,344136,2454509,731324,959960,2339241,5328199,4355183,114052,5301084,4016601,3021861,878583,3819195,2683224,1226551,4561925,3504596,4578960,5506762,4279766,4895772,4082400,11087437,968784,5475614,853189,4838700,941442,1071450,515273,1140791,1140765,4776404,4874256,4773966,4614523,142452,195432,4588089,4905552,4326569,3442010,848820,4884790,3053774,1721439,5055452,3907197,2672959,4286570,812697,283715,2763413,2050108,931153,1257030,1178663,3153953,4675798,4217380,631623,2491010,1687178,2583263,1200291,4466536,1363905,2879517,1200149,5214661,1927536,3339537,668571,1380585,4084881,978685,4675700,2696028,2757832,12127120,1658981,3108243,1802707,3931738,4393281,1209779,5208626,677975,3595452,5130160,997664,4206380,4928604,4744170,4216115,1305602,4483114,2357097,3389551,2925764,2510276,1130627,4370666,4508115,11972883,3705927,1817421,816731,2165661,4952586,953883,1471879,4071564,3388246,1365622,1320452,5131597,1419141,4344866,1198934,852636,2104987,3548037,1945472,1427742,3450035,870756,4503489,1801460,4942679,1520069,3356415,2099965,603687,4611380,1267082,715969,1467630,3944202,953476,3695383,4888355,3498623,988835,2593927,741538,1233984,4490982,506545,3554325,935594,3424967,5286008,1069632,4368056,4454613,594896,1714753,1719903,4380094,4026775,2186957,3498166,12133497,3867775,4404594,4813197,3982989,1444238,1901936,1109474,4485511,1172462,2334991,2942791,2007638,4323374,5127284,5602656,4350093,1422752,1428139,695467,2117697,3347076,4224106,663472,1547661,4126512,3039761,3210049,497503,4505956,2244964,3487407,169187,2375225,1416461,1713205,925327,3998987,3176607,1429810,910214,1937479,2538628,302017,2886397,5170374,1546818,3398620,819707,1194864,1713209,2148013,5179862,738362,626081,4175537,901909,3100365,1463745,1321632,1977740,4482780,4609427,4411349,1225925,1062152,3941487,1308650,3686464,1528156,4024786,4140435,1036584,1338972,4792367,3164315,3399517,213659,5015905,3935377,2741662,2921795,1179790,3555330,4588355,1143946,1847341,3569916,365541,1926959,4483092,1109013,1344583,3701899,4809223,1290975,1673850,4661233,1758080,324843,975750,1143672,3408888,1296068,183559,2593853,1768567,1302316,3127614,1301372,3426288,3444525,1086357,3948874,5269387,4961472,4003321,2670141,1489968,4002054,576925,2384789,3610639,2287540,3103097,3315757,4416475,4996223,4485513,2242040,2205825,5366699,5138276,2103003,5133634,4713941,1915256,1069286,5292046,189590,3230778,2146241,4889624,1744914,4173949,2947713,2524222,1773544,2949754,4120415,2751756,2148924,3544036,4687728,4947932,4777064,1144642,2231074,1607258,1044701,1006183,1197787,950853,5268561,1697293,624091,407678,5025051,3167610,2361986,1546288,1331131,5188008,4137564,2669873,4712764,2257695,2615955,5590712,1857008,4903502,2837801,5001209,3010184,5241814,2151317,3900233,1105296,210077,623163,4512867,4149465,2437003,1116870,1072238,4532249,11056660,5493864,1472690,1719899,1021482,11933888,425348,4005851,497498,4159328,4360443,123814,2266318,2097509,3916282,2817862,737144,3611252,885817,3289928,3056997,3564473,5354341,5283026,4280858,1118436,3652007,981729,1937469,1045208,4932556,2083523,3906247,4932614,480607,2836530,3675755,262306,4255683,11677038,5327590,2984886,4321747,1127812,3914278,4575576,1268596,2729461,3169734,1842875,1855313,1232139,4211028,4203709,3307174,2855985,2369653,2303960,3503652,1709426,1721537,1757542,2201821,4750992,207560,943369,4763443,309385,2395050,2323051,110715,613882,1995160,2101485,1443621,4951092,4310032,1121778,1746763,4120323,11694340,1178450,4435107,3299497,1356539,4889992,5307890,3021808,4614647,1840545,4383680,3880334,2490313,1233989,4593920,1690674,4455493,3529196,929733,1118448,1069264,4274549,2811697,1709707,905174,3541223,251321,5137930,2004338,3593432,2888174,967042,4852918,4540533,3454401,2372626,4553339,1110592,5532632,4155894,5518588,4663508,3942115,3212646,750692,2304360,4082786,4066221,1219919,208018,2358461,4115137,3682547,1266696,2890606,4925054,1398750,532282,5297286,2380861,4206044,4905660,2081687,2462656,2375243,910217,2001864,3738982,1293680,2812270,2827520,1719902,12192367,4546701,4860389,3402161,2768573,988851,749247,1615419,239142,2391128,4924386,415422,4978306,4653069,1835173,3721475,3526236,2831570,657426,4196044,1317974,782845,4856686,4534743,2612117,1068961,3303004,2113596,3336597,772651,1498224,4950307,4368324,4510088,2274759,313911,1361956,4578933,3596576,1260015,1168429,577246,4551001,217747,1501698,4643209,3393760,2264593,232428,3763260,3367424,4634798,5331985,4681952,2839220,2379124,4712366,752743,1781251,2201833,1078779,4254752,1075280,2183818,4220257,678898,690571,728006,1850540,11181647,1428238,298395,2593925,1163863,239764,4317754,852701,406981,4191983,1002263,1650893,1888408,4488923,3078780,2960721,546337,3801215,815397,1038129,3527454,903263,1090723,4526053,2387346,928343,1088845,4462509,2798954,4940768,1099797,2015244,2826969,4163053,516440,1525513,860498,4961446,2918982,1968823,3236624,1304085,2028163,4752458,2216136,3628700,4416614,1044480,385735,2729692,5058464,331333,3745239,1410038,2192065,4345311,1851319,1208551,3917722,1242534,4879844,2769125,1801413,1818835,4730472,5162870,941686,4160313,4861384,2763391,4251335,1016841,1267382,4659938,1752502,3738815,351339,381339,4676450,1592275,4131797,1768560,1246969,3455612,3311611,3527891,5006353,1447962,1553022,2641923,1850542,2684915,3825359,1064407,3121141,876415,2234734,4516685,4508087,2971463,5025362,968231,1383157,101666,4238414,2754701,4319045,5146051,1592764,4809431,1760143,1430834,1199711,817905,5162942,4918290,4470679,1898070,949875,2783295,1290744,2298612,4343133,1061862,11163193,1257425,5097172,4844320,2896978,4968117,4413703,1839630,2292563,2116779,4163047,3471064,1316077,1010264,11066731,2493430,970980,5188894,3500845,4466068,827069,4923278,1162551,4887670,910219,4876839,1679131,5110517,1215119,1351536,3332054,1937677,2244292,3453057,1894484,5104980,1203680,1946443,4642333,2567910,4380096,4394293,3564469,4231358,1336624,3989002,3483993,2972885,698425,3599851,231516,3989762,3350764,4362944,1198431,5115097,4796581,5423280,4792006,4637411,1026379,1075456,3391401,1197035,1229274,1159777,3730266,4401908,278120,1788776,2606589,4309491,1118435,280924,4035143,3511645,3102927,2908785,906035,4737987,1310863,2485586,1214748,2174614,4366182,841227,4523628,302817,2217105,3775065,2555643,388990,1279121,1160485,907127,5192636,1384059,3770013,1834943,4231614,3754507,584295,5030264,1262507,695774,2323043,2272889,1195865,4608035,4938852,4627744,281128,403872,5428188,4058212,1744125,2380737,1297910,1277100,4245285,4894617,695481,1288936,237294,11658530,1560770,1352470,1796974,738778,5435968,4413096,2297224,1108257,4112612,5142523,2668884,535378,1175446,1271681,1500630,5141000,3888278,4820922,4155521,3414140,4825264,4486466,3327871,4694204,4392691,2883424,2563135,1186702,12052490,4483120,1580705,654930,3292497,3858109,4359045,3806521,1250262,4802620,3311340,3920977,1184675,938366,1205996,3356012,1265907,3266577,4102273,801092,553033,5405836,2763377,4333767,3889740,1657909,2949780,3953498,4339229,2004037,5075980,4986983,4499242,4788061,2134281,11849537,1441215,1044706,1317252,3682497,3748397,885611,1711116,3262461,2168668,3129358,3796666,1015641,2858827,1028920,2819210,2539564,4003277,2337122,854784,4886863,730618,5138254,5222162,2430762,1591280,4595955,4064041,4973168,807143,549027,4608001,659613,1006690,5046952,1000632,5147925,4702726,1246736,1356593,4751414,1477753,1564193,1962697,653310,4984006,3082901,3811761,3521777,4508099,1757827,4796954,4856575,3011856,833097,3275854,3105616,4870374,1102262,3227420,3010328,3358168,1133113,1953169,1955298,3566802,1895940,5435434,4072824,3472609,3995692,1808877,605085,4238404,3063396,4181460,1318603,3614877,2689300,3147998,210056,990705,4065718,4425319,1297105,1175267,4235199,5159326,2954687,314609,3888005,2138237,1578589,2940011,173698,702424,1455414,2743207,2940102,252586,4224508,4787207,4928496,1286750,4635060,11675963,3708299,1304102,2064408,5005949,1403649,157496,12100728,1993092,3090926,1432330,1034888,1801476,4120379,4290216,5171434,4904050,1868425,1709712,287201,4489993,1079565,1033918,3108242,5097697,3410342,3750147,923626,11961314,3709454,4241527,114053,3709720,4193641,1275882,4316775,4416622,4154593,999027,2848990,1240108,5218447,1283994,2689310,5174653,10367339,4403992,194008,1709756,2369635,4677578,1672689,642449,2919805,1378407,4506152,1337254,4676452,1165671,3503670,1225187,4579006,1086614,2654888,2350444,3521331,509359,854783,4888091,1303437,5177324,4493633,235408,918497,4102781,857077,896814,3432325,759057,674791,3821864,11636680,4502057,4497359,807427,974147,3713001,2925506,380087,4139603,4633896,4796583,3940067,1219928,1178668,4596133,1206536,4016605,3529268,1581996,1302386,3336038,4503383,3825659,1228091,4423021,1431680,2688522,1779137,4615085,2176746,2138009,688049,2943313,729822,1834951,4797183,3051715,3778481,1269269,992207,3169597,1110992,2278611,930678,594842,4483102,3859456,11185386,2873198,1818520,1071842,1692632,3831078,4568296,3343302,1151478,1265419,1620396,832760,245148,1114411,4093553,4904957,3165519,11917487,4376698,4311785,1710138,3763981,4430710,2039560,1908306,3266284,4958234,3359768,695480,4000991,4820755,11922453,4958298,3171024,2900804,3905794,4712753,5257272,3398725,2519272,4220251,3366303,5023945,339997,1120686,11677367,3904873,2004031,1314026,3939408,4315520,3304803,1023241,1865234,2329294,680579,184793,3337991,1582853,3762621,1190256,1887637,4326387,5188000,5175123,3424945,3444232,3801116,3853859,1750531,5398428,12037418,1427738,4614529,4483104,3598030,1030656,4134841,10645463,2220821,4075930,883575,1307547,2363423,1757538,1272012,4483106,4122674,4745958,1911610,5174765,4044735,285735,1864875,4221330,207991,1867164,1138702,5199718,2291156,941759,4218634,1195551,1720632,2504661,4159502,4355165,2836324,3468933,1045900,4104742,2266735,1083759,2242032,1015705,1208740,1722952,594839,3761925,2142731,3693307,3400377,3267598,660739,4960206,2977310,1105402,3854395,2491024,5284350,2851844,506547,4415895,4732964,627913,2322185,4925960,4638267,4247184,4723072,4996341,4877779,5051405,1894492,5508182,1937486,4594049,1342717,1603807,4902462,188503,1447318,1760128,12002098,793962,4646499,11899018,1865339,1302711,3153370,4030777,4003331,503193,5360568,1711904,1856223,1443618,955262,1039361,3046629,1620368,3180521,5343194,3300191,4482386,5188042,3542161,2223520,233567,179707,2680498,506546,654969,4270051,2342601,3023476,2956059,2942307,1773958,2833721,522367,4508107,3804770,502568,2918128,2963644,3398675,3617642,1317254,1355846,1145157,1248820,2845668,4647565,3242983,1267571,1802681,873486,5004113,4656633,4321281,4803364,680997,550293,2529761,3400401,4725304,3826012,1948207,767296,2435176,209091,2010235,12018031,4047275,2443765,3017823,5285120,952874,3791597,5064392,2952237,4167035,1765604,1065181,1492986,11405208,617635,1281659,3133855,4955581,2873538,3219535,988228,3649688,1165154,906002,3131006,4377126,12165097,859792,4149477,782023,1125638,1965758,4975878,3720912,5448861,1016334,1073749,3758173,4884902,5253036,1156550,1309076,5105026,841209,2218387,1295232,1742027,1425078,5142863,4996239,1217441,626029,1843432,1145626,4411371,4464392,10018316,4663095,971916,2443071,816582,4413048,4318468,940545,1210978,3237454,1924310,1321741,4243856,591188,2525382,482577,1260333,1190029,3960137,4393782,4232683,5283012,1089805,4385971,5411863,3364589,2785684,1768550,11057607,4682395,2519669,2605531,4267089,4712778,884953,4661826,1281660,1058856,1586490,3675765,2749931,1717039,963673,901920,4946544,1831149,4371726,1356533,3348710,3537048,1021901,1234947,5113345,4689493,1730707,3491218,1323107,3017497,830782,4638373,4956301,2362674,4157967,4498571,2171800,1412685,759104,1498610,2002494,3202443,651326,11687859,5463145,114051,1062681,2827314,3008753,375537,4279764,4354137,4747520,1276439,4791168,1805141,1771375,286077,210101,3829260,4558115,4344844,3193822,4320781,3339245,1517770,1977454,1759004,4098820,2188552,2971052,3459497,632862,808958,3512453,671337,1834937,1096381,935180,2005155,623184,5059844,1599924,1318981,4489953,4548489,237263,1590978,3398791,4220709,2919811,1128470,945893,1312114,1349108,724979,5005068,1323738,1302057,4587964,4929940,5126183,1813570,2156016,4589263,3116023,3812095,2310784,12037046,4467796,1197046,968651,862254,2362670,3479629,4538288,729221,3992991,1292426,4866702,803481,3367250,4241529,1145239,931150,1678863,3288559,982784,5353644,3236620,5107283,4369595,2996147,1088030,1286731,1222750,1657931,5305726,1748557,1334640,838867,4888129,1435920,5449550,4866694,3735232,12112900,5382608,2763401,4204590,4339739,1223337,3027280,1495690,3734874,3745952,5290138,538737,1773647,2430340,4529318,1519837,11140159,5129284,5058070,1268509,3351531,4811016,328266,3597936,3646911,4505458,857037,896815,631620,3969715,2268958,5272960,1337795,1302631,4559760,3669727,2385669,2249497,2819480,4128230,4321263,11660825,2734291,4109215,176950,143804,3595303,984881,1364208,3029900,3028834,1339446,1126205,1089828,888556,2055178,4253458,680992,3327725,754452,1458917,1929358,1151232,4754741,1435585,592793,2293815,1222752,4099555,5427216,1410333,4592864,5501922,1021099,3553171,983540,1409795,1620913,1490698,1723184,979270,1295800,4541826,5196635,1347109,2145498,1577264,3778669,4160317,1230805,1124814,2228442,2217750,1225929,3755141,1186706,4459623,3734048,2873418,5464854,3444549,5150251,4070741,3596289,2503685,3398890,3760253,4413265,4695801,1159231,4599131,2002883,3841582,4362714,5138282,2834051,12122883,4318422,2232342,4813178,5106463,206808,564322,4825278,598827,1121787,4796417,2816565,2260201,3439215,1195860,4925227,5153672,177431,5222597,1642525,3503642,2761187,11930320,4197301,4223461,4766902,575362,3281786,1329382,2539279,2013991,4074251,2156089,3701943,3564467,2099964,2293339,5204044,999660,2304629,975756,2830894,2758917,5436612,1341050,2296588,814464,1468837,3670057,2498177,5399945,1867786,3294814,206735,3759992,4372489,1331395,1794586,11853441,4252424,849048,5032230,598279,4832874,4250069,3830790,674890,4501882,4819278,3989001,416905,4561969,4384069,1385825,1576086,1234972,3969267,1186694,2246466,2894271,2906694,2538583,1744073,2297333,4112641,4388090,964418,2820065,660743,5423284,4417896,1306182,5475244,1209709,4632948,1552946,2846060,5003136,2170847,4316933,4556129,4966693,4160307,3754233,3850479,2853846,12058186,1808857,502250,4051713,2186504,1122983,2184959,4110209,4708518,1757397,3886183,3173754,1711177,4189006,4563019,4935785,4467846,4461935,3369881,850144,3595224,2211600,2900957,1909619,1744131,4787343,114885,1169940,1850520,1133499,3830064,4318660,380102,1782139,754578,605084,1228976,594912,772358,2804505,1069315,2625673,4286358,1183370,5001595,5052273,3166537,1967854,2584681,508004,3346106,1144679,3398408,1264537,964995,3724803,11759613,2862640,2995308,311349,2984344,4674884,2903698,2796661,4346208,1331707,4905796,710101,3709486,1516607,3708849,3972801,1221446,1469783,4071584,4358550,830807,2713336,1739860,4787565,5115390,3231165,3709799,3746501,1205651,3294650,4232218,3429825,3030267,503220,4508129,4978326,3246399,3699263,680190,4241985,1974774,3746503,3012973,4780201,917415,3755883,3862160,2669612,4368042,2562588,1591457,3355984,3702761,2186660,4431773,850443,1305619,4914075,5158653,1168223,3591494,3779497,103835,961553,1744072,1757401,3408468,567895,1713471,4586833,11605648,4651422,3205318,4508340,830657,1323755,5064636,3597517,706701,4934586,800642,3340816,155443,11678155,1513567,4848287,3649920,480730,965714,3607612,1044723,1100526,2193414,2679666,923445,2848933,3734860,2142165,4218073,3161343,2873658,5575894,159319,1993091,592686,4938582,4806277,4403262,4255036,1778686,2268506,818103,1593487,11306138,2523921,5113974,1291066,12081337,5009643,11761207,1709853,2426559,362161,5196487,1920887,1802708,1197760,2941766,4500644,5037989,3177930,2348792,4277452,5120940,987295,1331772,5007942,5274598,1183888,4934568,2788652,2055619,173134,222338,189592,3609734,1065979,1173831,873209,1019266,1429791,1097198,908388,4186492,1964390,2192019,2456102,230288,1581999,3342257,380073,4391570,2836502,2994139,5353212,4189541,4754711,4075816,2372647,4292599,179703,5120936,974958,1021895,1149391,2001495,4133686,2256107,5028783,4570657,4220293,4934558,2621295,2079965,3419681,163470,1177081,173137,3067587,4496644,3773946,819191,1340759,4641491,2886229,4637413,3939873,4597051,4502061,1209729,1083526,605070,1813107,4541704,1612980,1917547,4838382,12014042,2201670,3786840,5040317,3818456,899475,491356,5007554,1277390,1117654,819179,2825807,4120347,801394,741084,958466,2002550,819190,3694111,4810640,4035223,4847754,2566336,4967970,3486680,3929955,526834,2922857,3444581,1200144,2357676,556502,3419416,11116623,848815,1383042,2168547,3004563,234368,1881642,1666469,5335026,2601926,1172927,374239,601344,362159,1387906,237292,5417672,3180499,1206151,337650,5009629,2150703,3521245,1869024,5475610,3123421,645223,5059916,2088041,1801119,4459669,3020875,953780,4233210,4592760,2635177,1549364,2796199,4599124,12194881,152221,3462434,302010,3448827,4454972,3585436,944146,4132930,1734907,4613335,4735855,3005673,2217746,1714750,3547650,3862307,1332004,2848338,1026319,1717056,5049089,2401170,910135,3033701,1060566,2886415,653296,977497,2825963,1537401,1178694,4768463,1151228,2763395,2380334,818098,2858200,1850539,1270374,3316577,188562,4746670,4093819,848872,1192212,1956137,1221438,850358,4928052,5258606,4132289,154248,2997005,197181,12240382,2922243,210079,2948957,1279116,818874,2201222,5164885,4508105,905011,4926516,1346780,1400281,2888958,1853703,1302056,3814013,4072809,4264874,4532159,3610523,3088504,2785838,1139853,1230810,4238535,3459111,4107255,2599660,4472212,3581605,970860,3914856,4008378,4069533,552988,2359234,2563157,1133490,3579851,4530645,4689499,4328159,4677744,5127282,905175,280913,1419880,1336150,2727328,11234622,526825,4742368,787623,3820595,4544498,1545110,3596120,4992763,1309071,4935528,1061463,3367009,2113566,292194,1340921,4508101,3234250,1137477,1993070,5509424,1312738,2216473,5316479,4525061,1093809,4139599,5121244,1990479,1931640,1273121,3821740,1285305,3604173,1836315,1670651,3500791,1714167,4800507,3751761,3126966,3756785,667943,2029517,367313,4426891,5123256,2655571,4656385,3378484,4537428,3130265,1601477,1797719,12102866,4344317,4187800,1448345,3431752,3080591,5205488,1247133,11973062,851706,280431,880048,1122581,5317770,5378565,4091495,3049130,5235845,4993769,1759007,3121145,4961892,964416,4966593,10907090,3543706,5642856,1296830,575148,4574551,1132921,2291124,4033947,100597,878740,1466636,2257038,1150817,4430644,1250438,496815,670484,2344160,3127461,5114017,2647836,3998996,1363907,4206028,4636589,1125768,1039798,2735100,1330619,2939486,1614174,2552207,642399,2024577,4142661,2285666,979761,2009779,1216596,930747,3273194,2238467,4175401,3539614,4067574,2485621,4660719,2377528,929693,2250808,1097148,4907112,4283795,1945961,3924063,2517439,3439592,1137470,1548313,1783406,1921741,4466708,4625344,5085829,3606296,3760454,5020121,4160315,4132882,1805819,3244605,865327,1865308,1545844,925660,11312282,1734744,1581064,1622962,2140228,1794697,3122059,5075566,1357656,1727063,1562089,4217474,3893485,2943852,1225518,1382090,374237,953552,4318470,4971243,2888226,4978380,114942,4389787,4870808,216034,2323410,4803352,4432056,1215055,4977674,3058891,712625,1673853,3433317,614257,4371984,4809415,4713594,1140618,5418670,3356439,3229666,3009903,4675371,4851062,2268954,2810905,2967017,3777926,3229644,3161564,726333,4928058,807428,3628438,2181703,4692090,917689,3975861,1489928,3132594,1060466,3074073,1230739,1291946,3719045,2442814,4874374,4132455,2855245,775682,4508093,5252600,848811,3547996,4344848,1458435,1504157,11665816,2306603,4758042,594897,3441111,4270029,2247923,1114593,11454239,4535376,2246892,2484852,5186440,1229740,1990475,1766804,5297628,552478,4082129,2114563,3521337,1209713,1067818,1191045,1006032,719400,3780425,4596983,2145507,4139595,2077422,4992809,1272501,2184464,1643192,4106535,3758693,4385342,2919303,874070,1580629,1250261,2205434,1180561,12184953,3998887,3494281,4478189,2194386,5180516,2531127,2398774,2851802,2013633,2639008,2634567,1410244,4674331,3364282,764721,10340179,617825,2375231,3826890,290822,1130966,4809649,4030737,3396707,4417026,1642481,4638741,1788774,4682078,3277429,366817,3564547,2671359,1800745,3178510,4617802,1010711,5226274,1120078,771349,1129090,1266350,1714156,4706166,561115,2491437,2865932,4708211,2150240,4754731,3341521,2151084,3543680,1330012,852642,2484184,3513042,3165071,3069607,331330,5030328,1153652,4368730,545957,3925799,2131242,5023854,4983908,2117977,1201284,1480015,4561935,4045952,4977698,3048770,1739126,2505201,5137652,158018,617404,1185311,1040870,1083395,1142615,2087952,3169657,2165653,3331741,627277,380071,2004010,3874070,553029,4857588,4638329,2754542,3778329,3017775,3116941,974906,284957,5097093,4706606,11401377,2238970,2632397,1765617,1222751,4430730,5252592,1019198,4642968,526835,3366301,1291942,2371651,2587503,729213,4135434,2906702,3745851,11555281,1550722,4548223,1010709,1268665,5239538,4495889,4648883,1599410,2290626,5114411,787633,2507390,2921816,1354474,4164451,497497,529629,1846357,3123275,560556,2376378,4979408,3455747,1498193,1354447,12176278,3083203,2021155,405990,3501896,3026369,5098192,5059918,4265252,605250,5301114,2194520,1277893,180318,2108991,3704322,941676,563238,643046,2195401,1072334,4114479,3613021,118164,2197822,329865,1462443,12032989,4681956,1093034,2247314,962475,4250372,4271254,1218985,1272489,1266325,998605,4269947,3204891,819705,3822827,4330548,1172562,2859459,3267366,1121159,4223078,4009485,3530626,5378646,3948598,5458792,2388579,4393275,1068444,3985167,4212330,1126199,5064079,3710211,989387,4158812,980075,2272614,145128,317653,5005879,1363906,4995681,1349140,283407,1320160,2264298,1249244,4618701,123864,2678783,4023825,5426953,4289136,4426899,4801442,4432052,1879150,3378602,3505232,2003808,1506392,3301964,4994929,3614365,1451659,2230922,136587,4393205,2751677,1026909,305552,2497385,712162,1197074,1337252,664486,2055453,4134819,1839342,4285376,566904,4022833,1195859,4331512,2231826,943411,5177322,4237662,821866,5032110,3632023,2152118,3916308,11958791,2316567,4221336,4221310,3731593,518799,1601900,1226136,4970688,1624571,1094069,1262915,3204889,770106,3790183,3038451,1190253,4311757,1489967,4815615,777241,733438,2312006,3465378,11254431,2517303,4064126,3670869,4991772,5046984,323522,1187496,1552853,4155558,4713013,4983070,4725476,1351487,3206436,1067048,1149666,2018563,3614317,2614067,2898101,2084464,3399949,2919596,4462453,1723512,2232431,3301970,1502512,1075239,1186708,326154,2771002,2474507,280914,1913380,2917272,4057644,3205316,5674268,4328014,1951411,963588,2232415,5296651,206783,2854181,1338269,1319508,4821384,297633,1294083,11703814,3806523,2960489,935385,4749233,5055462,1978031,419563,2957310,1420687,12044934,4658946,3606536,1458767,1044728,1129209,1125276,3977355,1328761,4169344,1842778,2410546,4713923,4967552,406982,4538316,3408260,2268960,4562779,2297112,1750389,3954492,426281,2877592,3823979,1303528,5557726,1577131,3352068,801427,5088827,4531723,4134310,3202843,2017616,3703375,3564435,4496114,1773650,1093299,1259287,169790,1277649,3941519,1151221,4088813,838873,1750032,1001439,3904238,3842709,4040313,4889075,4755773,3868826,1203901,1095328,3718105,3332593,4828947,4187322,1497433,4404596,978634,835262,864671,4013752,2915483,3818500,5091200,398881,1094039,3821152,332027,204143,4532561,251826,4490382,944707,4785200,2826392,1024564,3205320,3140530,4124808,2720472,367254,5312478,713030,2380166,690654,1289497,862271,4990697,4905719,709833,1353423,12168360,3073500,12099462,4298564,3770009,4648454,3909950,4035217,5224868,1717329,2088890,5001175,4814021,5298786,1661664,1306479,1297918,3377540,3023480,4968127,1744070,865116,733388,4390252,4694188,178629,875372,2828995,4177797,1240033,823015,3560752,3228599,4185088,2799682,1639374,4741846,5188932,2554180,708004,1297912,3900493,4678244,668589,832559,2516710,5286469,1777851,4218610,1742997,1317267,1293744,2012739,3435872,5519058,493442,997186,849057,5133517,4772850,2808199,3679941,2108740,1780201,4929097,1001435,3602644,3243065,4866278,5288412,3532764,3220477,863383,1477750,1720647,3745205,4864546,5496376,5277630,4581019,1185662,969855,268077,1296855,3730448,1784892,1231787,3982640,854804,1097522,2177845,4178855,4935272,4040315,3936574,3164853,1516602,526144,1044060,1195329,1119367,3804392,5181398,4802026,1882111,3099496,694806,337643,282161,988844,847188,216238,3086297,1801987,5083202,1340679,2220375,1737757,752948,816590,2830770,4499011,4058079,4508081,3026317,1989487,2311807,672774,1132638,3356423,204623,5354351,4971591,480725,5148551,4633396,789061,4477645,2809913,954215,1559090,927854,1458939,3269872,2425714,4997528,1556540,3599376,2133339,1014489,4934102,4277202,1552845,1448361,1089970,5255828,251836,3477411,1095640,635683,2371822,1032337,1450903,926686,4810162,4384374,4578982,2247316,3579858,12088559,251854,2234143,170320,1872666,1076892,11831078,4140026,2192188,754326,4320968,4038741,623140,1973879,4890944,1686617,548503,5068378,4474999,2816019,5180735,2113604,1493416,3084135,3382191,1284303,4007152,5046793,1471778,1248899,4366148,1130828,4678654,4634045,5294513,2843336,600097,4838712,1110161,614767,1576597,1153348,4554432,574190,4972444,3526788,3819998,1383139,3366305,12245248,3788902,1161061,2443543,1495711,1182266,806181,522365,1060749,1109751,11736232,3855536,4687832,1192925,1325706,1079669,1283973,1010246,3659174,1193147,5404080,657949,3682465,437032,1290753,669048,332040,3606811,1070835,365494,4477667,742659,2793469,3153038,2011988,4499498,2345283,2386440,4066511,4257321,1967261,3718259,4071578,4179786,4912606,3577512,1278112,3782139,4384984,1793907,5334759,3452040,653305,3564443,12172172,2517411,326077,5096716,1210221,4905776,627178,3926877,4955277,2551190,1496629,534395,1951405,1386801,4278299,538729,1831156,1216165,2833207,194605,3238136,2736013,1313505,2696100,1240038,10026123,959981,2528229,4352484,1569106,1152703,5040218,4093559,1841262,4192993,760459,700703,10119031,2415803,3396523,1682739,2306925,1336052,1427737,695479,4281042,3631615,4510086,3902066,782924,3152954,2966419,1868424,2929897,1565226,1780903,1834724,2591625,1029871,1175436,1383135,4675337,1765098,1195188,3442920,2473244,2743041,280885,5328978,3300569,3663583,1908290,1344925,4351175,1151231,3857525,4043959,4200195,2655631,2964904,1088852,11871117,847197,769309,3063098,5412097,216986,2697911,3787062,1184076,1682710,2058575,214608,1265814,3863016,278129,1881123,4187658,4136818,1280931,5025869,1184073,1284753,4767015,5008880,3029922,1550232,1298397,2846697,1060332,836971,1090907,3408184,1122574,3181447,3484557,1713453,4947809,3263271,4544076,3225820,4797211,1134429,3738204,2460950,2350049,1152040,2621220,1080068,286048,1757378,4335012,262413,2089894,4987270,927060,646214,1781935,3117537,743656,3227530,2717933,901903,988758,852947,1122962,768900,4237832,4014403,3717519,617814,4296442,4166399,1267853,2478916,3791765,4923662,3177740,4720060,1424265,1292405,3486452,5284338,1325300,172149,3125040,3031985,3606384,5077974,5180514,620187,3007224,4236736,3188438,1225855,435797,2794093,2280952,2236375,1006792,4105437,1111809,1582667,1431727,1427733,3343407,266608,763236,4321304,2196076,2578029,1039840,1060745,3157527,3929179,961380,11053042,3798322,4208527,2965326,4673993,2149293,1305599,4913184,2375245,3675543,4605017,4715776,1184760,4750047,5102208,4503419,1186517,3130047,2018835,631980,100418,1250266,4014767,1282048,2374554,4713934,5191702,198626,4750624,5045184,4278031,4005363,2362923,4611268,1602455,1197715,206181,4484537,491715,4697756,2013637,2168109,1360763,1859513,852010,5127340,1571429,1030721,1209785,549793,3634862,4241200,1732691,3000728,580587,2882370,1120183,418655,3013421,4154542,5362818,971139,623718,3265516,2964275,2749933,2650462,4166369,1165452,1891927,910151,3893487,3455666,2798843,3757569,3677824,3155484,2190033,1242136,1883303,3995456,4402800,1384058,1201473,5103150,549056,2302238,4533119,502490,3553062,941758,2034804,1140623,4089531,3735124,3977065,3557618,1125738,987709,4478659,1008662,1289419,1221219,709978,898844,496810,11509532,737139,1398739,1668309,1078016,1842812,3173752,4112092,5007924,1419147,2614787,4173989,262689,5093363,4310407,3821202,5157845,2218375,1209775,984872,1248135,4834604,582747,4924774,4507580,1744077,103889,4482954,2142091,774307,2368534,4902806,3660988,5075966,5099789,4100680,1103187,3590064,879089,525262,1230803,782909,5254802,5130582,854803,4722698,4787593,4426357,2916606,1044481,4149647,2971392,4751739,598296,4047353,4217490,2726299,2934261,3432656,2108739,2848448,378512,635180,942041,3829544,4323962,1161320,3166422,4180971,732327,1000467,1720642,4194752,3958927,4606579,1186697,1833249,3596590,4159350,1089903,5376602,1399082,142688,670479,3258165,2367212,2331127,3034622,747477,603071,1178665,1386400,4315506,365537,837944,2330112,4152136,3099523,1398976,1298685,741083,3647042,1445359,3543462,1927533,5355064,1235388,1796166,2638553,201450,12072066,4402288,1431598,3297333,3449901,3709796,206781,5018424,4767019,1279667,4665475,4717144,3588979,651325,3600095,4620505,3399525,702422,1469758,983916,4415935,1823138,5504490,2172006,4413544,917832,941628,1425573,2315063,491360,2848793,2921927,4383987,1234967,4508055,2089980,503994,3279961,764731,1850904,1190245,2036886,3505364,1164051,3374541,4070777,3028952,12116664,3399840,4054186,4078100,4008297,1320992,1021894,2873176,404422,4820194,4611704,1154022,2918108,2766360,1981570,2795972,4218135,4047589,2103178,2718511,3135776,5535960,659596,1177091,11219511,3990893,4799003,4581015,1895933,2787760,2510006,1521168,1416212,1320453,2076435,549762,11870448,4689803,4912584,4743868,2372599,3674839,3768487,1149676,12092218,5463278,1029508,4968119,161784,123220,727967,1587410,3172849,5228458,2165667,1295798,1256906,3419370,3186565,1975749,4862178,3869388,1320273,2020860,1532603,3759573,791044,1211762,980425,251848,1230804,1234001,782353,3455692,1892018,840211,1757528,905992,1000728,2797580,3557584,3001996,3478683,5001417,5092765,3127277,592902,12148890,12189648,1078176,3270621,1336450,4880710,5082980,1276445,3397714,1083403,2478727,1343999,2316535,4130690,1179294,4779474,2374552,278117,4713921,3729925,176828,4445121,2952786,5256855,1205730,389582,1102250,1271289,3761620,1724542,1185242,3110721,973480,1115357,535981,2938814,1690094,1378891,703278,2860572,11982526,2860968,4139607,2414890,3717541,3674978,4306798,862229,2795471,4851726,4331084,1239538,3334376,1294307,2512786,1751314,847394,497501,721165,1757428,4143678,11932116,3107472,503201,4888087,326156,3462218,1934319,4165371,2433827,3139627,4101084,2458536,5018268,2894161,1077571,1765881,2359855,3066291,715961,5598894,3904935,1504830,2790437,2461035,2384568,1611625,5496374,1419132,4101070,3085980,4466792,4640491,2013641,3440438,709760,1278335,4083889,1223123,2461241,1944623,4198944,2321948,3118588,1265377,5018230,2103522,4432058,1316135,2784998,3966192,4679170,4270049,3112118,1407517,2329310,1612947,4808741,1741850,636923,4023537,1467658,900923,1887255,4859283,1523698,2034588,2004019,2006669,3735312,4068469,3823831,411010,3644075,4189679,1324969,1233301,1516606,3343370,5097348,1982854,2413069,11708895,4552716,3995982,341717,761607,1765078,1154602,1745221,5148027,4917902,2539718,901902,4366150,4955264,601345,540588,4592913,4342230,2087266,3187258,541816,1195206,2187003,1179009,1592771,3677841,891247,1041017,4548493,1233221,5143482,3749093,4035221,526473,841544,853347,991778,5265440,3513260,1437345,2108767,3123925,901895,1765606,766091,4330891,1140380,361132,4813398,2242041,3058609,4212230,2825651,2198006,2441296,914463,3861067,190006,2976685,1341670,4622233,1424932,5088026,712567,1458447,2243010,2212167,3394215,5001954,4585793,1039778,11940971,1540037,4993685,287212,1087038,725363,5309160,3968153,4232885,2198003,5181263,2548718,3511078,4602877,685926,4548253,1700397,2210200,173694,4766958,4857155,1818519,4634455,4154975,4874254,1337253,855620,5532190,2927100,1945474,1788122,1579224,1309002,4559969,2583475,905527,4737981,1151230,4675389,1787106,5432637,3533877,5142869,1416455,4641871,3917091,2272004,229524,4046828,3901175,5063711,4131741,1395856,944058,1917770,3103708,5166275,3399374,2636423,1226040,3724721,4208339,2952744,4866696,122335,3068657,1038131,4848274,4189677,1744126,1110062,383752,2321950,1945204,3819580,1420912,1827193,3467228,2139906,2847176,4749462,4370662,4204618,3396573,528133,1290765,3136385,1471471,675581,2712974,4381935,4938976,3266579,1267377,2909293,1265789,1285542,2230924,237570,1522607,1205291,1618309,1044724,3001049,2945640,3343567,11675599,4750728,3105285,1230450,2609270,640904,2816155,4157994,3980633,4756273,4997622,4750754,4968180,1281522,1881518,3209925,219343,2828306,4792154,2965395,816733,1592947,11770140,4975550,1213116,4935781,2490315,2282144,2971050,3781974,971324,1334619,2297813,2135512,5056257,2497532,5244860,302006,649095,2968029,1859247,4803822,2829356,5001130,3995526,3606418,1340732,4189669,3949954,491965,12122721,2169915,4791150,3903991,4224124,1342061,3284823,959228,3518710,1744054,1002065,695483,2600248,1309286,1287968,731539,3239870,1178879,4528065,1559109,850169,3048627,5342726,4730514,4170784,1122579,3945858,503187,189144,773200,1750033,4732459,4972624,5046629,3377136,940582,1099858,736882,3435800,5104168,983433,2698201,2736011,3668211,1634036,1175500,4488485,3014478,1726866,4712897,3551592,172441,1063561,1035839,5394814,526161,1233223,2196377,3907324,4584726,718196,849951,4147398,3271376,1903689,1233783,3545435,2214425,4678178,525550,2380871,1496834,2965401,3510800,4552009,4445617,2364848,1152094,5026227,623357,4264348,4820226,4160605,3311156,910222,3347481,990609,1752638,921757,3334286,1671793,1086499,4016777,2780669,2647696,880037,2567493,3247991,1331712,4441415,1407972,1540028,986796,3672580,2593634,3334022,4344846,3072678,1103345,776644,3408822,4411648,4906143,1444232,884354,3751699,2114226,4380072,5006314,4094680,4798831,4927613,3145334,1192103,4335139,4810595,1516156,627718,5007968,1647807,1503879,1000543,854254,5121194,2216894,2865940,4265315,762245,4211865,5089271,574886,2863690,4364130,1182950,4091027,4344555,978684,1314785,4876029,642402,2742417,4717206,110457,4652465,1122823,1578193,1816748,1220826,4809275,862302,3649474,4284041,11663081,3735609,3341220,387714,117847,1852599,979038,522676,4219473,4154597,3722856,4071554,2462508,3699508,4273483,1944409,4746602,3301390,1233224,923050,1989517,4568294,2257452,3052055,2865924,4171185,4180981,5403138,2552201,1084306,4345605,3530228,1094736,4212093,234366,552990,731320,1746745,2963177,3564523,1089807,1135611,767320,4462467,1552422,5005865,1282733,4535400,1092029,3650344,11561385,2802858,1858815,2798974,2474326,4148202,2360361,2218809,3773626,4114893,2997563,2390101,4626529,2076287,4080329,1192164,1580963,737143,563118,5028644,1742051,2859029,1278896,1363919,1059013,1990546,1499452,3474996,5263833,1919778,298095,4576292,3369436,2543762,4329035,4918296,3748099,1622966,1261721,3734824,4510568,305551,3995560,3794165,1345967,1650237,3788407,3639055,526830,5142859,1937456,1647805,3311967,1744917,5432639,2609262,3408092,3546864,1077821,262688,4257297,1331225,5231662,202567,1426288,4301199,1729944,2825326,1796149,966272,1951407,1778687,4130051,4212238,2833305,1795529,747202,5148616,217210,1953922,941677,1437337,1142619,367578,129857,3832720,1030608,2503695,3479280,3833951,2948283,623365,4606781,1766254,4934740,891442,1731631,1255828,4345751,752740,3332179,3511016,4766933,4193772,3987809,5458089,530553,751340,2379122,625985,3067763,4220125,1277677,1153198,1223367,5425503,3710198,2967481,3566786,4614835,2248414,4577029,1544730,3897955,2505575,4843879,1801383,4859245,1686619,3940249,4536020,2362911,4654962,823030,955635,1687996,3887460,4370115,251340,3205266,1631634,1509560,3661198,931524,836257,1908296,1095130,3600353,3902900,2883267,2736262,3187402,2217908,1519444,5098209,4403047,4165709,1808465,3584691,4990654,2457630,5114933,1865268,3108251,3449903,351202,1256707,4338081,553114,2593913,3794329,4991030,3160225,5270291,213644,548500,2503502,1709989,3070139,1790005,285999,1668287,5522624,2353646,1680529,2411142,901900,2655477,773860,2286746,4218614,5008820,3521615,2202273,3608760,2268919,862561,3873744,1044731,5197636,4707358,4146552,2156386,2211938,409769,539412,3588387,2928870,2710503,4583473,2966536,4257400,2461229,298885,1584028,1185210,1865259,1044475,4742428,4978382,3833247,4230320,3176581,4238755,992316,4346841,1502321,1139040,2122602,1850546,5018426,3901917,2185122,2171990,2190107,189589,1279105,389256,2123419,11144230,3262435,1125725,2144477,717252,4646461,1291060,4708402,4175706,5059488,2524141,4938770,3368842,1256907,848232,1937454,4807433,1297484,2654464,3367949,4035443,4946344,2242159,1720644,1956782,4369742,3972377,1331212,2771999,1752648,3235712,3377132,490243,3239834,1787100,1218558,2584658,2952963,4979892,797248,12029797,4446146,816581,393198,1244148,5104172,1283995,1071514,1629709,952875,1956815,4143201,3176551,3322946,1332359,1098354,2736025,1940622,4285622,646212,5392182,2882192,11994316,2348736,1234974,1578164,1989565,4767304,1695486,1184853,971333,3751438,3874034,2714305,1171691,4796431,1074925,921136,3717848,5411889,4636587,2925346,1386250,3472877,1497491,975242,4890120,1404802,941781,1641076,2386450,3513171,3445259,1945294,2555137,1481064,1494332,3630231,1937465,2458781,12012505,1416497,2910169,1123962,1164158,3883943,3516352,1044476,1254637,973487,2181425,1662070,1094105,255798,2615934,2870951,4820890,1030422,4335054,3822824,2676432,3419592,5030916,331033,5326178,4112637,11252778,2738011,4930761,5007562,4306662,4066633,3419305,899777,1995645,401656,1723742,11270239,3597603,3834771,259585,222152,4461923,4695747,959838,1060294,1969175,1814632,862558,936649,3229100,2676072,819169,1102873,2209969,3154307,2140042,3696802,3979903,3206126,1286756,5277352,136434,3336020,3530884,1015488,1098456,3185775,4270245,617068,3670067,3673827,4670732,2882194,1044680,1183796,4611366,1060218,1262660,3882471,5364980,117835,4172906,3249223,3440502,2247302,5250744,854795,3075874,1592413,4764771,975234,2235846,871175,1859498,901907,5097658,4745936,3374599,1122682,880450,3432646,526472,397701,3922989,4502871,1277637,2693720,2639773,324839,5235823,1044479,508002,819972,188000,4914531,3751965,3648312,4679067,304733,4809804,2357558,4203535,675529,3960535,3704586,1103180,721134,4634765,3899636,615562,1010708,3924930,1577266,3580702,5250514,3739868,4201504,1459061,5475174,608883,3163742,958912,818049,3632079,2199790,1497424,4087436,5036602,3027578,1250255,4549866,3034802,5382868,1044732,2833247,4188962,4128624,3446713,5427840,3782671,2776671,1686641,1070188,3973459,1322638,4183208,3375323,4521540,5417039,5194028,1268117,2357091,2861662,5114740,3637788,3900955,1583844,2942414,3513163,3868931,4899768,2947731,5115049,847625,383760,4950734,4812752,2785264,2743357,2108760,901908,3151772,5371658,1343964,1157301,3976162,1732686,377876,5046625,901918,3751012,3792153,1722322,1410215,518779,1086094,765578,2683775,928963,1726849,1190587,5142861,675219,2155793,4138951,4315126,2804865,4026628,1204335,177633,2770050,11883657,3119738,1162552,2376965,3659407,5166293,3334298,5075528,1387890,1106925,1299611,2942446,1336257,3810286,10551133,5257706,319867,3244988,630130,3800262,4341307,1879521,642400,4800445,2205248,987413,5493806,1269288,3331857,3002054,1242549,4423476,1032745,4920436,4155303,11970722,10937943,5174700,3454449,2077357,4321054,1337239,4783089,727034,2699496,2014727,1586658,4161216,4310713,670773,3762258,874666,4226803,2187111,1111883,3153256,3419602,932783,3300145,4046216,5378494,2502079,3579609,791041,4488515,1506763,944853,2743359,4325427,2742383,4310054,351200,302018,1419129,4236160,4507945,4531685,4062346,3829099,1851151,3551100,1038138,5557076,4318286,4858234,1110668,2586594,4743696,4084711,1865160,2317870,4861276,4076405,4682921,1251076,1215587,12243320,2154141,1863219,3504318,4670730,1237545,1061857,2782752,2552450,1781266,865347,2268244,4058210,3595973,4784267,4661231,3866841,3427964,3176705,4934649,4824892,1026967,3972807,2481130,906023,287431,5142525,4397487,3133843,11835389,4858169,2963874,4727237,4907110,4230271,11097051,4295237,2510103,3020581,4533277,1151300,2823062,1154056,1159485,4638375,5130508,1068549,3928367,1178690,997669,2436862,2495993,3116448,3855510,2967593,1599405,5377180,1562085,1714158,636921,4066471,4580997,1723428,695466,4060213,1582533,1060156,2834053,1686626,2387698,388340,5037172,491525,1071472,1213121,674117,187678,5148163,2848323,4217526,4687290,1026965,3633553,1153107,4756271,2765584,4027651,2679821,852601,1218490,1110280,3104155,3849865,4134885,1175996,4503906,1823311,3370067,1016818,2723029,874232,3182191,4554266,5193865,2892856,3577985,2274608,4126244,5353304,1601353,5168887,255778,2248768,1566989,3023336,4242870,3853817,12109762,1294779,5026604,326136,2707121,2373721,3772555,2995994,1294085,1547752,265468,1404743,1039815,1304087,700393,1039813,1972174,423645,4202086,904084,2894348,1655174,11242172,3370506,5359210,11338691,5590416,553122,4273798,4323450,990979,2357973,4858252,1233215,3679921,2799225,3161995,3454833,564199,330122,1462651,3912635,3083217,2366311,5175117,4230811,2123647,2149341,2185730,623174,900872,4108515,1757964,1071504,875866,2525364,4791000,1335865,598290,1121698,4797193,4030905,954212,2932797,1238049,3991201,1990482,1168486,3752867,5333710,1254052,5189394,4449148,4525785,4422957,3715586,3831100,396725,2941304,4606144,206803,934267,1420110,3080225,1805866,999061,2003408,4878698,1609165,4508085,1173637,407959,4454757,3438670,11954069,4500628,1744820,1730749,3166633,4140148,3334146,5451938,1143024,2997011,2939920,1647187,3455236,4419586,285479,1030553,4854163,4142113,2728940,1020659,4750990,4174457,3438686,293863,891198,3011732,4881711,3442665,3343525,2299418,4470922,2274091,4304372,3464376,4934336,4478083,1199184,700392,927664,4383396,3627489,1744081,2825977,2892322,3903182,2538896,2805300,2688081,4661940,187706,4167780,3034786,853085,5175105,3505316,801071,3101157,2316993,594782,1162812,3746068,3969281,2150242,2925199,3991141,1867182,2314897,615566,383756,3989389,999495,2323982,862548,1144312,656993,1968817,3170842,251855,859445,3772783,4148212,2802852,3158768,4464368,1151223,3444240,4507816,3398866,4905658,5007536,1115182,1874685,4176511,3959337,1953181,4103763,1001601,3142453,11784098,11870829,3289005,1795538,388087,5074555,2460667,497496,4858633,4274539,1218054,4173042,4622747,931420,3340562,4160303,922837,252689,3613997,278130,1103186,11442162,3187762,3632682,3769180,1359506,169692,3025250,5114028,664372,1315320,380075,1321337,3766836,4565007,3206833,3539632,265940,4140384,1103183,1307479,3973364,832283,2455848,1306801,3843597,1080549,3682523,11788082,924691,2363591,1247005,4331326,3273327,5130158,2266585,4360693,2245164,1723762,1268177,4113814,3156378,5338244,941679,1205287,2989532,1257229,4469378,1977731,4208839,4718470,3857725,1043089,4803826,3961439,2483617,3403278,4412717,1211592,4939525,1103026,1098361,4344940,5346895,657542,4254754,4242468,1219921,786724,4721327,4782936,351851,883128,5050909,491963,971111,3842703,2982661,3400795,1914991,2740893,201851,3158798,3510330,654962,10099376,1278464,2855989,2942418,1159327,280903,819155,139356,962969,836065,3756787,12179885,4486444,3727797,4508057,5186671,4309882,3470636,4330444,1360765,757342,5023722,4202412,1203621,4106796,4610221,3980533,3158915,2496453,686437,1546381,5126566,1139027,2116791,3885683,2399249,1379151,1666712,4333597,574731,3926295,2653901,4619714,1636886,1433516,3125123,1026966,1270051,12023349,1431622,4676065,1012906,3266756,1636340,813728,1921912,4321261,582690,4887419,4614979,499985,1284280,3364876,1188310,1665947,698659,1113476,186053,2223001,4250433,5144468,5319596,2683232,1416457,1030735,3735811,1653203,1078170,3911206,5137682,5001173,4521474,1735451,528474,4791162,2830193,4373181,1340200,940952,1121146,202874,4808697,910144,3867555,1506256,943378,4232665,3169441,5242328,3060907,1752649,1298414,922533,5051507,2004617,5218213,1308704,4822392,2165630,1657875,1931631,3140998,232410,1356197,3948347,3727809,2457401,3342934,311730,11521816,2029441,2529589,2232433,525268,1215520,1256867,901901,1865260,880971,5325336,3965595,3995519,5226828,1739884,1703026,3542209,2210227,4368732,1117123,1670627,1443156,4397416,1191481,1028759,3111785,5050274,2237344,999344,372861,12171204,3761618,1261831,1251013,237547,1720704,1082520,4263928,1365733,840002,3249925,805452,3923387,1865083,4659924,4535404,2314247,5417670,3842711,4196419,11954631,1592206,4459247,5148876,3763297,1937460,429559,1043860,1143036,1374540,1445127,4340205,2442820,915477,1744123,12010266,1579674,2029437,4968121,108364,4061666,4646437,3459483,618005,4226635,4474607,2379111,3016367,1138288,1119593,2292551,3379813,3457999,3622348,1949048,2460102,3659204,4954677,680533,2306166,2197112,3310884,388616,4675613,1405290,4265268,1709997,1084742,1073455,1282017,4636780,960055,4200281,2828950,3695463,3034364,188081,3112881,4151801,4713939,2307485,1282784,4377817,3318118,11253398,4380118,1129205,1942215,1632831,3341427,2820003,4979920,875858,327492,2184343,1143679,4749231,1323150,2857506,862244,2198013,4713572,3984656,1783785,1941282,846169,183501,4566637,3888009,1233220,1491681,4493643,5223641,3126050,4033790,251308,967824,119525,1583251,1503650,1778787,2808516,1181186,5320168,4042615,703515,3586583,2256292,1751460,5235867,5604988,4791994,4489922,4672676,5402880,4695735,744264,1788770,218256,1431731,1319140,4974266,552868,1200150,2525099,1550214,346059,545960,4114019,1978117,4680287,901917,1069439,4932622,2873255,186049,5353929,4657814,329873,11939734,4489971,1744242,5187572,772929,2212459,374242,879183,3360436,5321312,5168732,967968,2796663,367961,728844,4113299,1118434,1297612,2832511,5102898,4844996,3728407,3749095,3046871,4902470,3241721,4856545,1034188,1601354,955255,3843583,4369472,905198,1317138,4435312,1580693,285740,11678353,1289069,2880446,3494259,1318575,2138227,1831758,2117903,3680701,1083404,1326527,1521782,4220523,2360421,414725,2004032,1713200,924232,1919203,10951037,4295503,5175810,1220850,2454606,631621,1864998,749250,1762518,280977,3697281,2324637,1170094,2149281,2364796,351201,4174649,2849542,2157070,283596,265894,4860246,1355606,694807,524759,629797,656998,1709905,3508320,4158802,4664136,2357689,1098359,848830,715809,3710861,2631176,2900861,4712716,581162,1324614,1099360,5050039,771351,884718,5232716,1039799,923329,986795,641729,4977676,1692215,818611,1944390,1766255,4899060,4708528,1933201,1132207,981759,2245501,3278730,1833248,3951872,210054,1113951,5357830,4199627,3844718,1531704,1029175,1700884,530848,978680,3884740,2343127,4431603,4215115,731326,4990912,2034591,3810703,3714862,1196493,4528093,4043600,4758318,1266806,4483022,1298305,703213,1306143,2568622,1036613,12213172,4689017,2460752,2359754,1151846,1114555,3244966,2139901,226527,1088268,4338269,2787063,3850466,1892028,5525866,5180737,255803,4041645,5151404,1738008,3761983,1254227,1956826,5431646,1240222,2231233,434082,1459440,4425164,954209,3894497,3730250,548501,566690,4527606,2930900,2264531,2770715,1322627,4249952,3723872,1448102,1686562,4928026,1335208,2750875,1119366,990687,4622697,633365,5114502,11281831,2858182,4918616,1590425,2848272,4855788,1152042,1138687,2827952,3458001,3229433,437314,3919597,1419142,1884121,1887628,3012303,5222158,3764672,2688012,3069895,1482527,1296662,5433250,1434937,4262984,898622,4334976,1123422,4447013,594835,1774724,968377,1559009,1069304,3333424,3470770,752906,1229025,831075,1039868,2836831095824,3083495,1704536,949411,5256858,5252128,1964546,4662132,4081449,2826374,4098931,5453594,5628964,3526617,207960,3857484,4101056,5324226,5509522,1995109,2018545,2987583,4822422,3679919,5055336,4232651,3369865,2209967,2369907,5366697,4304822,3399953,1335247,680227,1545858,4848278,4692025,1993087,3603415,4675712,3823385,1969099,1881128,4065862,3813432,3021037,1218505,4990911,3503112,2165829,4936587,3664599,1267081,1744006,721703,2931146,1167992,4992793,1258114,4054188,724114,1954188,1042114,4535332,1003837,1898075,1000431,4413315,5338252,2520376,1216100,1704537,4087397,4568228,2168373,4203861,2110736,331349,3473405,3723909,4723092,4331494,2099985,2907443,3180118,3759729,1938889,285662,3748393,779158,3199525,4622739,1896980,4682659,1757256,3588794,3897953,2223019,1141656,512413,2155422,3699623,2380437,952873,2800075,3977077,1726938,1714133,5159324,3432650,5412170,777022,849035,2659935,3579781,1743997,4328018,3339991,2810948,1292965,1197637,768041,3350981,3695493,1178675,4764260,365654,727970,4204586,280908,910159,1561197,4499500,3165644,2020781,4587700,1546827,3022162,4599872,2201829,4536388,2435184,4257196,532278,4665281,3427041,953462,3710086,2564999,608881,2600242,2633733,2888196,183236,4422031,3557850,216128,3886401,3762182,5313250,1009912,3894304,1898086,4310010,2199971,1821873,1546947,3743978,1689327,2186662,2854185,1707408,4007747,4193416,663327,782871,1853708,3517873,3533831,3951723,3583418,4257781,3398724,5059004,3250291,547625,3388852,5373198,1691020,4255502,1470202,633298,5038255,818100,2297564,3313304,376117,2710024,4235201,4331492,11579219,1183278,3670867,12144734,3274589,135468,4020721,5321342,2730559,4796285,848890,1060338,3781209,1311925,1757514,11461218,2368728,2854883,5054066,12109713,1506041,4787573,1209716,855680,4413347,2068868,3868632,2142053,3503298,958909,1681335,2611290,926266,1162131,4902862,680221,2440290,1895988,1065901,4515367,3786784,1916911,4233197,715887,2348696,2141148,1800763,1094955,617154,2383588,4520647,901905,528473,3978681,5388094,2929879,1642000,5009202,287418,4021577,3351529,4118646,1701988,4881136,1135983,1581587,839705,1898868,2943388,1710047,2133324,5227100,1774293,2314853,2225087,4229032,4520163,5204036,5036586,4418437,1831720,5030034,781488,1205285,4070785,4243188,4212051,213642,2670193,1015774,3124286,4316959,2951508,4170717,1626596,4802774,2361717,1419232,436329,1919195,5154612,4771296,1827228,348137,1513018,4227751,4155631,1123427,3883044,906001,4386726,331352,3309187,823020,3539658,2066728,3901153,2168211,5009886,2279759,2155914,4718625,4148692,1578913,819559,4785888,4396142,905721,3897871,582689,3022152,2756389,663338,1823128,598129,3547998,4414652,913223,1133620,228634,100421,3005427,3547003,1040222,4277979,2139539,984884,328404,11514297,3561339,3613055,3243564,2567594,773304,1806865,3487250,4367244,5448739,3408078,3948914,3392203,1030418,3888284,963581,665254,3557620,4720052,1976867,2247927,2736431,3670926,1242670,210082,851580,2311805,3601005,2908716,696804,4325725,3356311,3432654,1816412,187548,585422,497925,3913810,4151805,5256565,3952474,3389896,691791,3065679,1235022,2829509,4347970,3669733,3541241,1462644,4007909,3286010,1137473,4876807,1419242,3106610,1281673,836070,730617,1008341,1228380,5137778,2187061,4646651,1287630,3017777,1288654,4579140,3399473,4534615,1188092,3432164,2141202,1060221,1280519,891133,3969505,5306919,2360310,584300,4167156,4560344,423478,2389406,1003105,332068,4961385,4695759,1209655,5325462,5144025,1609105,4186855,3072666,1322559,4428794,4115789,3555984,1338971,4801518,11319623,1714157,674602,908305,2284463,1093036,4727322,2386353,2279834,3470648,1190252,2439951,5344986,2001961,3600987,563024,1820084,1717383,5039782,1427784,685848,3444015,5192476,1540141,4871348,3887155,4817281,1989595,727042,4495805,2281927,4736647,2132471,1223128,3513141,3203640,4212053,4217390,1082266,416906,3953586,5288502,1477751,5262856,580716,4510072,1250593,3580676,502237,1071533,3512974,1247131,534109,4983774,2198007,207886,642783,3188005,4531725,3034792,5267024,829058,3220215,337505,1270572,3391437,4140154,768912,4695442,5249030,2118949,3100369,2153385,3836207,1298398,1121568,4285176,276077,2924702,3983725,901919,680319,313978,3639239,272823,698652,1670646,298040,4114325,3746922,4443999,3514916,1380195,3549507,1256361,1030875,2417895,1468449,4245237,4003313,5161822,2717765,2831554,4029771,3724815,3301966,5460308,1196930,3128516,4404578,4330238,1060281,1552892,1436708,217570,4955879,1579807,1890477,3822534,4432452,3637317,517811,3356383,2461020,523500,2615908,5104220,345406,3052013,1026968,4985340,670482,4750005,801396,3370156,631643,5076532,2427521,1035733,1319139,1504080,2843658,1879186,1949814,549051,2147347,1209099,4004731,752742,12098391,3990232,695469,4553752,979697,893100,3008557,3126962,891210,1274109,202672,2722595,3832553,1230028,1197729,2917304,3664655,3501802,3981120,5189400,5423816,160144,5092240,2768403,5398424,509170,411095,3303020,3411083,3884259,614298,4039513,4188783,11755904,2999737,5254221,235165,5166311,3012979,1208747,2321276,411070,2375257,5272162,12006637,4441399,4044957,2682089,4140525,344136,2454509,731324,959960,2339241,5328199,4355183,114052,5301084,4016601,3021861,878583,3819195,2683224,1226551,4561925,3504596,4578960,5506762,4279766,4895772,4082400,11087437,968784,5475614,853189,4838700,941442,1071450,515273,1140791,1140765,4776404,4874256,4773966,4614523,142452,195432,4588089,4905552,4326569,3442010,848820,4884790,3053774,1721439,5055452,3907197,2672959,4286570,812697,283715,2763413,2050108,931153,1257030,1178663,3153953,4675798,4217380,631623,2491010,1687178,2583263,1200291,4466536,1363905,2879517,1200149,5214661,1927536,3339537,668571,1380585,4084881,978685,4675700,2696028,2757832,12127120,1658981,3108243,1802707,3931738,4393281,1209779,5208626,677975,3595452,5130160,997664,4206380,4928604,4744170,4216115,1305602,4483114,2357097,3389551,2925764,2510276,1130627,4370666,4508115,11972883,3705927,1817421,816731,2165661,4952586,953883,1471879,4071564,3388246,1365622,1320452,5131597,1419141,4344866,1198934,852636,2104987,3548037,1945472,1427742,3450035,870756,4503489,1801460,4942679,1520069,3356415,2099965,603687,4611380,1267082,715969,1467630,3944202,953476,3695383,4888355,3498623,988835,2593927,741538,1233984,4490982,506545,3554325,935594,3424967,5286008,1069632,4368056,4454613,594896,1714753,1719903,4380094,4026775,2186957,3498166,12133497,3867775,4404594,4813197,3982989,1444238,1901936,1109474,4485511,1172462,2334991,2942791,2007638,4323374,5127284,5602656,4350093,1422752,1428139,695467,2117697,3347076,4224106,663472,1547661,4126512,3039761,3210049,497503,4505956,2244964,3487407,169187,2375225,1416461,1713205,925327,3998987,3176607,1429810,910214,1937479,2538628,302017,2886397,5170374,1546818,3398620,819707,1194864,1713209,2148013,5179862,738362,626081,4175537,901909,3100365,1463745,1321632,1977740,4482780,4609427,4411349,1225925,1062152,3941487,1308650,3686464,1528156,4024786,4140435,1036584,1338972,4792367,3164315,3399517,213659,5015905,3935377,2741662,2921795,1179790,3555330,4588355,1143946,1847341,3569916,365541,1926959,4483092,1109013,1344583,3701899,4809223,1290975,1673850,4661233,1758080,324843,975750,1143672,3408888,1296068,183559,2593853,1768567,1302316,3127614,1301372,3426288,3444525,1086357,3948874,5269387,4961472,4003321,2670141,1489968,4002054,576925,2384789,3610639,2287540,3103097,3315757,4416475,4996223,4485513,2242040,2205825,5366699,5138276,2103003,5133634,4713941,1915256,1069286,5292046,189590,3230778,2146241,4889624,1744914,4173949,2947713,2524222,1773544,2949754,4120415,2751756,2148924,3544036,4687728,4947932,4777064,1144642,2231074,1607258,1044701,1006183,1197787,950853,5268561,1697293,624091,407678,5025051,3167610,2361986,1546288,1331131,5188008,4137564,2669873,4712764,2257695,2615955,5590712,1857008,4903502,2837801,5001209,3010184,5241814,2151317,3900233,1105296,210077,623163,4512867,4149465,2437003,1116870,1072238,4532249,11056660,5493864,1472690,1719899,1021482,11933888,425348,4005851,497498,4159328,4360443,123814,2266318,2097509,3916282,2817862,737144,3611252,885817,3289928,3056997,3564473,5354341,5283026,4280858,1118436,3652007,981729,1937469,1045208,4932556,2083523,3906247,4932614,480607,2836530,3675755,262306,4255683,11677038,5327590,2984886,4321747,1127812,3914278,4575576,1268596,2729461,3169734,1842875,1855313,1232139,4211028,4203709,3307174,2855985,2369653,2303960,3503652,1709426,1721537,1757542,2201821,4750992,207560,943369,4763443,309385,2395050,2323051,110715,613882,1995160,2101485,1443621,4951092,4310032,1121778,1746763,4120323,11694340,1178450,4435107,3299497,1356539,4889992,5307890,3021808,4614647,1840545,4383680,3880334,2490313,1233989,4593920,1690674,4455493,3529196,929733,1118448,1069264,4274549,2811697,1709707,905174,3541223,251321,5137930,2004338,3593432,2888174,967042,4852918,4540533,3454401,2372626,4553339,1110592,5532632,4155894,5518588,4663508,3942115,3212646,750692,2304360,4082786,4066221,1219919,208018,2358461,4115137,3682547,1266696,2890606,4925054,1398750,532282,5297286,2380861,4206044,4905660,2081687,2462656,2375243,910217,2001864,3738982,1293680,2812270,2827520,1719902,12192367,4546701,4860389,3402161,2768573,988851,749247,1615419,239142,2391128,4924386,415422,4978306,4653069,1835173,3721475,3526236,2831570,657426,4196044,1317974,782845,4856686,4534743,2612117,1068961,3303004,2113596,3336597,772651,1498224,4950307,4368324,4510088,2274759,313911,1361956,4578933,3596576,1260015,1168429,577246,4551001,217747,1501698,4643209,3393760,2264593,232428,3763260,3367424,4634798,5331985,4681952,2839220,2379124,4712366,752743,1781251,2201833,1078779,4254752,1075280,2183818,4220257,678898,690571,728006,1850540,11181647,1428238,298395,2593925,1163863,239764,4317754,852701,406981,4191983,1002263,1650893,1888408,4488923,3078780,2960721,546337,3801215,815397,1038129,3527454,903263,1090723,4526053,2387346,928343,1088845,4462509,2798954,4940768,1099797,2015244,2826969,4163053,516440,1525513,860498,4961446,2918982,1968823,3236624,1304085,2028163,4752458,2216136,3628700,4416614,1044480,385735,2729692,5058464,331333,3745239,1410038,2192065,4345311,1851319,1208551,3917722,1242534,4879844,2769125,1801413,1818835,4730472,5162870,941686,4160313,4861384,2763391,4251335,1016841,1267382,4659938,1752502,3738815,351339,381339,4676450,1592275,4131797,1768560,1246969,3455612,3311611,3527891,5006353,1447962,1553022,2641923,1850542,2684915,3825359,1064407,3121141,876415,2234734,4516685,4508087,2971463,5025362,968231,1383157,101666,4238414,2754701,4319045,5146051,1592764,4809431,1760143,1430834,1199711,817905,5162942,4918290,4470679,1898070,949875,2783295,1290744,2298612,4343133,1061862,11163193,1257425,5097172,4844320,2896978,4968117,4413703,1839630,2292563,2116779,4163047,3471064,1316077,1010264,11066731,2493430,970980,5188894,3500845,4466068,827069,4923278,1162551,4887670,910219,4876839,1679131,5110517,1215119,1351536,3332054,1937677,2244292,3453057,1894484,5104980,1203680,1946443,4642333,2567910,4380096,4394293,3564469,4231358,1336624,3989002,3483993,2972885,698425,3599851,231516,3989762,3350764,4362944,1198431,5115097,4796581,5423280,4792006,4637411,1026379,1075456,3391401,1197035,1229274,1159777,3730266,4401908,278120,1788776,2606589,4309491,1118435,280924,4035143,3511645,3102927,2908785,906035,4737987,1310863,2485586,1214748,2174614,4366182,841227,4523628,302817,2217105,3775065,2555643,388990,1279121,1160485,907127,5192636,1384059,3770013,1834943,4231614,3754507,584295,5030264,1262507,695774,2323043,2272889,1195865,4608035,4938852,4627744,281128,403872,5428188,4058212,1744125,2380737,1297910,1277100,4245285,4894617,695481,1288936,237294,11658530,1560770,1352470,1796974,738778,5435968,4413096,2297224,1108257,4112612,5142523,2668884,535378,1175446,1271681,1500630,5141000,3888278,4820922,4155521,3414140,4825264,4486466,3327871,4694204,4392691,2883424,2563135,1186702,12052490,4483120,1580705,654930,3292497,3858109,4359045,3806521,1250262,4802620,3311340,3920977,1184675,938366,1205996,3356012,1265907,3266577,4102273,801092,553033,5405836,2763377,4333767,3889740,1657909,2949780,3953498,4339229,2004037,5075980,4986983,4499242,4788061,2134281,11849537,1441215,1044706,1317252,3682497,3748397,885611,1711116,3262461,2168668,3129358,3796666,1015641,2858827,1028920,2819210,2539564,4003277,2337122,854784,4886863,730618,5138254,5222162,2430762,1591280,4595955,4064041,4973168,807143,549027,4608001,659613,1006690,5046952,1000632,5147925,4702726,1246736,1356593,4751414,1477753,1564193,1962697,653310,4984006,3082901,3811761,3521777,4508099,1757827,4796954,4856575,3011856,833097,3275854,3105616,4870374,1102262,3227420,3010328,3358168,1133113,1953169,1955298,3566802,1895940,5435434,4072824,3472609,3995692,1808877,605085,4238404,3063396,4181460,1318603,3614877,2689300,3147998,210056,990705,4065718,4425319,1297105,1175267,4235199,5159326,2954687,314609,3888005,2138237,1578589,2940011,173698,702424,1455414,2743207,2940102,252586,4224508,4787207,4928496,1286750,4635060,11675963,3708299,1304102,2064408,5005949,1403649,157496,12100728,1993092,3090926,1432330,1034888,1801476,4120379,4290216,5171434,4904050,1868425,1709712,287201,4489993,1079565,1033918,3108242,5097697,3410342,3750147,923626,11961314,3709454,4241527,114053,3709720,4193641,1275882,4316775,4416622,4154593,999027,2848990,1240108,5218447,1283994,2689310,5174653,10367339,4403992,194008,1709756,2369635,4677578,1672689,642449,2919805,1378407,4506152,1337254,4676452,1165671,3503670,1225187,4579006,1086614,2654888,2350444,3521331,509359,854783,4888091,1303437,5177324,4493633,235408,918497,4102781,857077,896814,3432325,759057,674791,3821864,11636680,4502057,4497359,807427,974147,3713001,2925506,380087,4139603,4633896,4796583,3940067,1219928,1178668,4596133,1206536,4016605,3529268,1581996,1302386,3336038,4503383,3825659,1228091,4423021,1431680,2688522,1779137,4615085,2176746,2138009,688049,2943313,729822,1834951,4797183,3051715,3778481,1269269,992207,3169597,1110992,2278611,930678,594842,4483102,3859456,11185386,2873198,1818520,1071842,1692632,3831078,4568296,3343302,1151478,1265419,1620396,832760,245148,1114411,4093553,4904957,3165519,11917487,4376698,4311785,1710138,3763981,4430710,2039560,1908306,3266284,4958234,3359768,695480,4000991,4820755,11922453,4958298,3171024,2900804,3905794,4712753,5257272,3398725,2519272,4220251,3366303,5023945,339997,1120686,11677367,3904873,2004031,1314026,3939408,4315520,3304803,1023241,1865234,2329294,680579,184793,3337991,1582853,3762621,1190256,1887637,4326387,5188000,5175123,3424945,3444232,3801116,3853859,1750531,5398428,12037418,1427738,4614529,4483104,3598030,1030656,4134841,10645463,2220821,4075930,883575,1307547,2363423,1757538,1272012,4483106,4122674,4745958,1911610,5174765,4044735,285735,1864875,4221330,207991,1867164,1138702,5199718,2291156,941759,4218634,1195551,1720632,2504661,4159502,4355165,2836324,3468933,1045900,4104742,2266735,1083759,2242032,1015705,1208740,1722952,594839,3761925,2142731,3693307,3400377,3267598,660739,4960206,2977310,1105402,3854395,2491024,5284350,2851844,506547,4415895,4732964,627913,2322185,4925960,4638267,4247184,4723072,4996341,4877779,5051405,1894492,5508182,1937486,4594049,1342717,1603807,4902462,188503,1447318,1760128,12002098,793962,4646499,11899018,1865339,1302711,3153370,4030777,4003331,503193,5360568,1711904,1856223,1443618,955262,1039361,3046629,1620368,3180521,5343194,3300191,4482386,5188042,3542161,2223520,233567,179707,2680498,506546,654969,4270051,2342601,3023476,2956059,2942307,1773958,2833721,522367,4508107,3804770,502568,2918128,2963644,3398675,3617642,1317254,1355846,1145157,1248820,2845668,4647565,3242983,1267571,1802681,873486,5004113,4656633,4321281,4803364,680997,550293,2529761,3400401,4725304,3826012,1948207,767296,2435176,209091,2010235,12018031,4047275,2443765,3017823,5285120,952874,3791597,5064392,2952237,4167035,1765604,1065181,1492986,11405208,617635,1281659,3133855,4955581,2873538,3219535,988228,3649688,1165154,906002,3131006,4377126,12165097,859792,4149477,782023,1125638,1965758,4975878,3720912,5448861,1016334,1073749,3758173,4884902,5253036,1156550,1309076,5105026,841209,2218387,1295232,1742027,1425078,5142863,4996239,1217441,626029,1843432,1145626,4411371,4464392,10018316,4663095,971916,2443071,816582,4413048,4318468,940545,1210978,3237454,1924310,1321741,4243856,591188,2525382,482577,1260333,1190029,3960137,4393782,4232683,5283012,1089805,4385971,5411863,3364589,2785684,1768550,11057607,4682395,2519669,2605531,4267089,4712778,884953,4661826,1281660,1058856,1586490,3675765,2749931,1717039,963673,901920,4946544,1831149,4371726,1356533,3348710,3537048,1021901,1234947,5113345,4689493,1730707,3491218,1323107,3017497,830782,4638373,4956301,2362674,4157967,4498571,2171800,1412685,759104,1498610,2002494,3202443,651326,11687859,5463145,114051,1062681,2827314,3008753,375537,4279764,4354137,4747520,1276439,4791168,1805141,1771375,286077,210101,3829260,4558115,4344844,3193822,4320781,3339245,1517770,1977454,1759004,4098820,2188552,2971052,3459497,632862,808958,3512453,671337,1834937,1096381,935180,2005155,623184,5059844,1599924,1318981,4489953,4548489,237263,1590978,3398791,4220709,2919811,1128470,945893,1312114,1349108,724979,5005068,1323738,1302057,4587964,4929940,5126183,1813570,2156016,4589263,3116023,3812095,2310784,12037046,4467796,1197046,968651,862254,2362670,3479629,4538288,729221,3992991,1292426,4866702,803481,3367250,4241529,1145239,931150,1678863,3288559,982784,5353644,3236620,5107283,4369595,2996147,1088030,1286731,1222750,1657931,5305726,1748557,1334640,838867,4888129,1435920,5449550,4866694,3735232,12112900,5382608,2763401,4204590,4339739,1223337,3027280,1495690,3734874,3745952,5290138,538737,1773647,2430340,4529318,1519837,11140159,5129284,5058070,1268509,3351531,4811016,328266,3597936,3646911,4505458,857037,896815,631620,3969715,2268958,5272960,1337795,1302631,4559760,3669727,2385669,2249497,2819480,4128230,4321263,11660825,2734291,4109215,176950,143804,3595303,984881,1364208,3029900,3028834,1339446,1126205,1089828,888556,2055178,4253458,680992,3327725,754452,1458917,1929358,1151232,4754741,1435585,592793,2293815,1222752,4099555,5427216,1410333,4592864,5501922,1021099,3553171,983540,1409795,1620913,1490698,1723184,979270,1295800,4541826,5196635,1347109,2145498,1577264,3778669,4160317,1230805,1124814,2228442,2217750,1225929,3755141,1186706,4459623,3734048,2873418,5464854,3444549,5150251,4070741,3596289,2503685,3398890,3760253,4413265,4695801,1159231,4599131,2002883,3841582,4362714,5138282,2834051,12122883,4318422,2232342,4813178,5106463,206808,564322,4825278,598827,1121787,4796417,2816565,2260201,3439215,1195860,4925227,5153672,177431,5222597,1642525,3503642,2761187,11930320,4197301,4223461,4766902,575362,3281786,1329382,2539279,2013991,4074251,2156089,3701943,3564467,2099964,2293339,5204044,999660,2304629,975756,2830894,2758917,5436612,1341050,2296588,814464,1468837,3670057,2498177,5399945,1867786,3294814,206735,3759992,4372489,1331395,1794586,11853441,4252424,849048,5032230,598279,4832874,4250069,3830790,674890,4501882,4819278,3989001,416905,4561969,4384069,1385825,1576086,1234972,3969267,1186694,2246466,2894271,2906694,2538583,1744073,2297333,4112641,4388090,964418,2820065,660743,5423284,4417896,1306182,5475244,1209709,4632948,1552946,2846060,5003136,2170847,4316933,4556129,4966693,4160307,3754233,3850479,2853846,12058186,1808857,502250,4051713,2186504,1122983,2184959,4110209,4708518,1757397,3886183,3173754,1711177,4189006,4563019,4935785,4467846,4461935,3369881,850144,3595224,2211600,2900957,1909619,1744131,4787343,114885,1169940,1850520,1133499,3830064,4318660,380102,1782139,754578,605084,1228976,594912,772358,2804505,1069315,2625673,4286358,1183370,5001595,5052273,3166537,1967854,2584681,508004,3346106,1144679,3398408,1264537,964995,3724803,11759613,2862640,2995308,311349,2984344,4674884,2903698,2796661,4346208,1331707,4905796,710101,3709486,1516607,3708849,3972801,1221446,1469783,4071584,4358550,830807,2713336,1739860,4787565,5115390,3231165,3709799,3746501,1205651,3294650,4232218,3429825,3030267,503220,4508129,4978326,3246399,3699263,680190,4241985,1974774,3746503,3012973,4780201,917415,3755883,3862160,2669612,4368042,2562588,1591457,3355984,3702761,2186660,4431773,850443,1305619,4914075,5158653,1168223,3591494,3779497,103835,961553,1744072,1757401,3408468,567895,1713471,4586833,11605648,4651422,3205318,4508340,830657,1323755,5064636,3597517,706701,4934586,800642,3340816,155443,11678155,1513567,4848287,3649920,480730,965714,3607612,1044723,1100526,2193414,2679666,923445,2848933,3734860,2142165,4218073,3161343,2873658,5575894,159319,1993091,592686,4938582,4806277,4403262,4255036,1778686,2268506,818103,1593487,11306138,2523921,5113974,1291066,12081337,5009643,11761207,1709853,2426559,362161,5196487,1920887,1802708,1197760,2941766,4500644,5037989,3177930,2348792,4277452,5120940,987295,1331772,5007942,5274598,1183888,4934568,2788652,2055619,173134,222338,189592,3609734,1065979,1173831,873209,1019266,1429791,1097198,908388,4186492,1964390,2192019,2456102,230288,1581999,3342257,380073,4391570,2836502,2994139,5353212,4189541,4754711,4075816,2372647,4292599,179703,5120936,974958,1021895,1149391,2001495,4133686,2256107,5028783,4570657,4220293,4934558,2621295,2079965,3419681,163470,1177081,173137,3067587,4496644,3773946,819191,1340759,4641491,2886229,4637413,3939873,4597051,4502061,1209729,1083526,605070,1813107,4541704,1612980,1917547,4838382,12014042,2201670,3786840,5040317,3818456,899475,491356,5007554,1277390,1117654,819179,2825807,4120347,801394,741084,958466,2002550,819190,3694111,4810640,4035223,4847754,2566336,4967970,3486680,3929955,526834,2922857,3444581,1200144,2357676,556502,3419416,11116623,848815,1383042,2168547,3004563,234368,1881642,1666469,5335026,2601926,1172927,374239,601344,362159,1387906,237292,5417672,3180499,1206151,337650,5009629,2150703,3521245,1869024,5475610,3123421,645223,5059916,2088041,1801119,4459669,3020875,953780,4233210,4592760,2635177,1549364,2796199,4599124,12194881,152221,3462434,302010,3448827,4454972,3585436,944146,4132930,1734907,4613335,4735855,3005673,2217746,1714750,3547650,3862307,1332004,2848338,1026319,1717056,5049089,2401170,910135,3033701,1060566,2886415,653296,977497,2825963,1537401,1178694,4768463,1151228,2763395,2380334,818098,2858200,1850539,1270374,3316577,188562,4746670,4093819,848872,1192212,1956137,1221438,850358,4928052,5258606,4132289,154248,2997005,197181,12240382,2922243,210079,2948957,1279116,818874,2201222,5164885,4508105,905011,4926516,1346780,1400281,2888958,1853703,1302056,3814013,4072809,4264874,4532159,3610523,3088504,2785838,1139853,1230810,4238535,3459111,4107255,2599660,4472212,3581605,970860,3914856,4008378,4069533,552988,2359234,2563157,1133490,3579851,4530645,4689499,4328159,4677744,5127282,905175,280913,1419880,1336150,2727328,11234622,526825,4742368,787623,3820595,4544498,1545110,3596120,4992763,1309071,4935528,1061463,3367009,2113566,292194,1340921,4508101,3234250,1137477,1993070,5509424,1312738,2216473,5316479,4525061,1093809,4139599,5121244,1990479,1931640,1273121,3821740,1285305,3604173,1836315,1670651,3500791,1714167,4800507,3751761,3126966,3756785,667943,2029517,367313,4426891,5123256,2655571,4656385,3378484,4537428,3130265,1601477,1797719,12102866,4344317,4187800,1448345,3431752,3080591,5205488,1247133,11973062,851706,280431,880048,1122581,5317770,5378565,4091495,3049130,5235845,4993769,1759007,3121145,4961892,964416,4966593,10907090,3543706,5642856,1296830,575148,4574551,1132921,2291124,4033947,100597,878740,1466636,2257038,1150817,4430644,1250438,496815,670484,2344160,3127461,5114017,2647836,3998996,1363907,4206028,4636589,1125768,1039798,2735100,1330619,2939486,1614174,2552207,642399,2024577,4142661,2285666,979761,2009779,1216596,930747,3273194,2238467,4175401,3539614,4067574,2485621,4660719,2377528,929693,2250808,1097148,4907112,4283795,1945961,3924063,2517439,3439592,1137470,1548313,1783406,1921741,4466708,4625344,5085829,3606296,3760454,5020121,4160315,4132882,1805819,3244605,865327,1865308,1545844,925660,11312282,1734744,1581064,1622962,2140228,1794697,3122059,5075566,1357656,1727063,1562089,4217474,3893485,2943852,1225518,1382090,374237,953552,4318470,4971243,2888226,4978380,114942,4389787,4870808,216034,2323410,4803352,4432056,1215055,4977674,3058891,712625,1673853,3433317,614257,4371984,4809415,4713594,1140618,5418670,3356439,3229666,3009903,4675371,4851062,2268954,2810905,2967017,3777926,3229644,3161564,726333,4928058,807428,3628438,2181703,4692090,917689,3975861,1489928,3132594,1060466,3074073,1230739,1291946,3719045,2442814,4874374,4132455,2855245,775682,4508093,5252600,848811,3547996,4344848,1458435,1504157,11665816,2306603,4758042,594897,3441111,4270029,2247923,1114593,11454239,4535376,2246892,2484852,5186440,1229740,1990475,1766804,5297628,552478,4082129,2114563,3521337,1209713,1067818,1191045,1006032,719400,3780425,4596983,2145507,4139595,2077422,4992809,1272501,2184464,1643192,4106535,3758693,4385342,2919303,874070,1580629,1250261,2205434,1180561,12184953,3998887,3494281,4478189,2194386,5180516,2531127,2398774,2851802,2013633,2639008,2634567,1410244,4674331,3364282,764721,10340179,617825,2375231,3826890,290822,1130966,4809649,4030737,3396707,4417026,1642481,4638741,1788774,4682078,3277429,366817,3564547,2671359,1800745,3178510,4617802,1010711,5226274,1120078,771349,1129090,1266350,1714156,4706166,561115,2491437,2865932,4708211,2150240,4754731,3341521,2151084,3543680,1330012,852642,2484184,3513042,3165071,3069607,331330,5030328,1153652,4368730,545957,3925799,2131242,5023854,4983908,2117977,1201284,1480015,4561935,4045952,4977698,3048770,1739126,2505201,5137652,158018,617404,1185311,1040870,1083395,1142615,2087952,3169657,2165653,3331741,627277,380071,2004010,3874070,553029,4857588,4638329,2754542,3778329,3017775,3116941,974906,284957,5097093,4706606,11401377,2238970,2632397,1765617,1222751,4430730,5252592,1019198,4642968,526835,3366301,1291942,2371651,2587503,729213,4135434,2906702,3745851,11555281,1550722,4548223,1010709,1268665,5239538,4495889,4648883,1599410,2290626,5114411,787633,2507390,2921816,1354474,4164451,497497,529629,1846357,3123275,560556,2376378,4979408,3455747,1498193,1354447,12176278,3083203,2021155,405990,3501896,3026369,5098192,5059918,4265252,605250,5301114,2194520,1277893,180318,2108991,3704322,941676,563238,643046,2195401,1072334,4114479,3613021,118164,2197822,329865,1462443,12032989,4681956,1093034,2247314,962475,4250372,4271254,1218985,1272489,1266325,998605,4269947,3204891,819705,3822827,4330548,1172562,2859459,3267366,1121159,4223078,4009485,3530626,5378646,3948598,5458792,2388579,4393275,1068444,3985167,4212330,1126199,5064079,3710211,989387,4158812,980075,2272614,145128,317653,5005879,1363906,4995681,1349140,283407,1320160,2264298,1249244,4618701,123864,2678783,4023825,5426953,4289136,4426899,4801442,4432052,1879150,3378602,3505232,2003808,1506392,3301964,4994929,3614365,1451659,2230922,136587,4393205,2751677,1026909,305552,2497385,712162,1197074,1337252,664486,2055453,4134819,1839342,4285376,566904,4022833,1195859,4331512,2231826,943411,5177322,4237662,821866,5032110,3632023,2152118,3916308,11958791,2316567,4221336,4221310,3731593,518799,1601900,1226136,4970688,1624571,1094069,1262915,3204889,770106,3790183,3038451,1190253,4311757,1489967,4815615,777241,733438,2312006,3465378,11254431,2517303,4064126,3670869,4991772,5046984,323522,1187496,1552853,4155558,4713013,4983070,4725476,1351487,3206436,1067048,1149666,2018563,3614317,2614067,2898101,2084464,3399949,2919596,4462453,1723512,2232431,3301970,1502512,1075239,1186708,326154,2771002,2474507,280914,1913380,2917272,4057644,3205316,5674268,4328014,1951411,963588,2232415,5296651,206783,2854181,1338269,1319508,4821384,297633,1294083,11703814,3806523,2960489,935385,4749233,5055462,1978031,419563,2957310,1420687,12044934,4658946,3606536,1458767,1044728,1129209,1125276,3977355,1328761,4169344,1842778,2410546,4713923,4967552,406982,4538316,3408260,2268960,4562779,2297112,1750389,3954492,426281,2877592,3823979,1303528,5557726,1577131,3352068,801427,5088827,4531723,4134310,3202843,2017616,3703375,3564435,4496114,1773650,1093299,1259287,169790,1277649,3941519,1151221,4088813,838873,1750032,1001439,3904238,3842709,4040313,4889075,4755773,3868826,1203901,1095328,3718105,3332593,4828947,4187322,1497433,4404596,978634,835262,864671,4013752,2915483,3818500,5091200,398881,1094039,3821152,332027,204143,4532561,251826,4490382,944707,4785200,2826392,1024564,3205320,3140530,4124808,2720472,367254,5312478,713030,2380166,690654,1289497,862271,4990697,4905719,709833,1353423,12168360,3073500,12099462,4298564,3770009,4648454,3909950,4035217,5224868,1717329,2088890,5001175,4814021,5298786,1661664,1306479,1297918,3377540,3023480,4968127,1744070,865116,733388,4390252,4694188,178629,875372,2828995,4177797,1240033,823015,3560752,3228599,4185088,2799682,1639374,4741846,5188932,2554180,708004,1297912,3900493,4678244,668589,832559,2516710,5286469,1777851,4218610,1742997,1317267,1293744,2012739,3435872,5519058,493442,997186,849057,5133517,4772850,2808199,3679941,2108740,1780201,4929097,1001435,3602644,3243065,4866278,5288412,3532764,3220477,863383,1477750,1720647,3745205,4864546,5496376,5277630,4581019,1185662,969855,268077,1296855,3730448,1784892,1231787,3982640,854804,1097522,2177845,4178855,4935272,4040315,3936574,3164853,1516602,526144,1044060,1195329,1119367,3804392,5181398,4802026,1882111,3099496,694806,337643,282161,988844,847188,216238,3086297,1801987,5083202,1340679,2220375,1737757,752948,816590,2830770,4499011,4058079,4508081,3026317,1989487,2311807,672774,1132638,3356423,204623,5354351,4971591,480725,5148551,4633396,789061,4477645,2809913,954215,1559090,927854,1458939,3269872,2425714,4997528,1556540,3599376,2133339,1014489,4934102,4277202,1552845,1448361,1089970,5255828,251836,3477411,1095640,635683,2371822,1032337,1450903,926686,4810162,4384374,4578982,2247316,3579858,12088559,251854,2234143,170320,1872666,1076892,11831078,4140026,2192188,754326,4320968,4038741,623140,1973879,4890944,1686617,548503,5068378,4474999,2816019,5180735,2113604,1493416,3084135,3382191,1284303,4007152,5046793,1471778,1248899,4366148,1130828,4678654,4634045,5294513,2843336,600097,4838712,1110161,614767,1576597,1153348,4554432,574190,4972444,3526788,3819998,1383139,3366305,12245248,3788902,1161061,2443543,1495711,1182266,806181,522365,1060749,1109751,11736232,3855536,4687832,1192925,1325706,1079669,1283973,1010246,3659174,1193147,5404080,657949,3682465,437032,1290753,669048,332040,3606811,1070835,365494,4477667,742659,2793469,3153038,2011988,4499498,2345283,2386440,4066511,4257321,1967261,3718259,4071578,4179786,4912606,3577512,1278112,3782139,4384984,1793907,5334759,3452040,653305,3564443,12172172,2517411,326077,5096716,1210221,4905776,627178,3926877,4955277,2551190,1496629,534395,1951405,1386801,4278299,538729,1831156,1216165,2833207,194605,3238136,2736013,1313505,2696100,1240038,10026123,959981,2528229,4352484,1569106,1152703,5040218,4093559,1841262,4192993,760459,700703,10119031,2415803,3396523,1682739,2306925,1336052,1427737,695479,4281042,3631615,4510086,3902066,782924,3152954,2966419,1868424,2929897,1565226,1780903,1834724,2591625,1029871,1175436,1383135,4675337,1765098,1195188,3442920,2473244,2743041,280885,5328978,3300569,3663583,1908290,1344925,4351175,1151231,3857525,4043959,4200195,2655631,2964904,1088852,11871117,847197,769309,3063098,5412097,216986,2697911,3787062,1184076,1682710,2058575,214608,1265814,3863016,278129,1881123,4187658,4136818,1280931,5025869,1184073,1284753,4767015,5008880,3029922,1550232,1298397,2846697,1060332,836971,1090907,3408184,1122574,3181447,3484557,1713453,4947809,3263271,4544076,3225820,4797211,1134429,3738204,2460950,2350049,1152040,2621220,1080068,286048,1757378,4335012,262413,2089894,4987270,927060,646214,1781935,3117537,743656,3227530,2717933,901903,988758,852947,1122962,768900,4237832,4014403,3717519,617814,4296442,4166399,1267853,2478916,3791765,4923662,3177740,4720060,1424265,1292405,3486452,5284338,1325300,172149,3125040,3031985,3606384,5077974,5180514,620187,3007224,4236736,3188438,1225855,435797,2794093,2280952,2236375,1006792,4105437,1111809,1582667,1431727,1427733,3343407,266608,763236,4321304,2196076,2578029,1039840,1060745,3157527,3929179,961380,11053042,3798322,4208527,2965326,4673993,2149293,1305599,4913184,2375245,3675543,4605017,4715776,1184760,4750047,5102208,4503419,1186517,3130047,2018835,631980,100418,1250266,4014767,1282048,2374554,4713934,5191702,198626,4750624,5045184,4278031,4005363,2362923,4611268,1602455,1197715,206181,4484537,491715,4697756,2013637,2168109,1360763,1859513,852010,5127340,1571429,1030721,1209785,549793,3634862,4241200,1732691,3000728,580587,2882370,1120183,418655,3013421,4154542,5362818,971139,623718,3265516,2964275,2749933,2650462,4166369,1165452,1891927,910151,3893487,3455666,2798843,3757569,3677824,3155484,2190033,1242136,1883303,3995456,4402800,1384058,1201473,5103150,549056,2302238,4533119,502490,3553062,941758,2034804,1140623,4089531,3735124,3977065,3557618,1125738,987709,4478659,1008662,1289419,1221219,709978,898844,496810,11509532,737139,1398739,1668309,1078016,1842812,3173752,4112092,5007924,1419147,2614787,4173989,262689,5093363,4310407,3821202,5157845,2218375,1209775,984872,1248135,4834604,582747,4924774,4507580,1744077,103889,4482954,2142091,774307,2368534,4902806,3660988,5075966,5099789,4100680,1103187,3590064,879089,525262,1230803,782909,5254802,5130582,854803,4722698,4787593,4426357,2916606,1044481,4149647,2971392,4751739,598296,4047353,4217490,2726299,2934261,3432656,2108739,2848448,378512,635180,942041,3829544,4323962,1161320,3166422,4180971,732327,1000467,1720642,4194752,3958927,4606579,1186697,1833249,3596590,4159350,1089903,5376602,1399082,142688,670479,3258165,2367212,2331127,3034622,747477,603071,1178665,1386400,4315506,365537,837944,2330112,4152136,3099523,1398976,1298685,741083,3647042,1445359,3543462,1927533,5355064,1235388,1796166,2638553,201450,12072066,4402288,1431598,3297333,3449901,3709796,206781,5018424,4767019,1279667,4665475,4717144,3588979,651325,3600095,4620505,3399525,702422,1469758,983916,4415935,1823138,5504490,2172006,4413544,917832,941628,1425573,2315063,491360,2848793,2921927,4383987,1234967,4508055,2089980,503994,3279961,764731,1850904,1190245,2036886,3505364,1164051,3374541,4070777,3028952,12116664,3399840,4054186,4078100,4008297,1320992,1021894,2873176,404422,4820194,4611704,1154022,2918108,2766360,1981570,2795972,4218135,4047589,2103178,2718511,3135776,5535960,659596,1177091,11219511,3990893,4799003,4581015,1895933,2787760,2510006,1521168,1416212,1320453,2076435,549762,11870448,4689803,4912584,4743868,2372599,3674839,3768487,1149676,12092218,5463278,1029508,4968119,161784,123220,727967,1587410,3172849,5228458,2165667,1295798,1256906,3419370,3186565,1975749,4862178,3869388,1320273,2020860,1532603,3759573,791044,1211762,980425,251848,1230804,1234001,782353,3455692,1892018,840211,1757528,905992,1000728,2797580,3557584,3001996,3478683,5001417,5092765,3127277,592902,12148890,12189648,1078176,3270621,1336450,4880710,5082980,1276445,3397714,1083403,2478727,1343999,2316535,4130690,1179294,4779474,2374552,278117,4713921,3729925,176828,4445121,2952786,5256855,1205730,389582,1102250,1271289,3761620,1724542,1185242,3110721,973480,1115357,535981,2938814,1690094,1378891,703278,2860572,11982526,2860968,4139607,2414890,3717541,3674978,4306798,862229,2795471,4851726,4331084,1239538,3334376,1294307,2512786,1751314,847394,497501,721165,1757428,4143678,11932116,3107472,503201,4888087,326156,3462218,1934319,4165371,2433827,3139627,4101084,2458536,5018268,2894161,1077571,1765881,2359855,3066291,715961,5598894,3904935,1504830,2790437,2461035,2384568,1611625,5496374,1419132,4101070,3085980,4466792,4640491,2013641,3440438,709760,1278335,4083889,1223123,2461241,1944623,4198944,2321948,3118588,1265377,5018230,2103522,4432058,1316135,2784998,3966192,4679170,4270049,3112118,1407517,2329310,1612947,4808741,1741850,636923,4023537,1467658,900923,1887255,4859283,1523698,2034588,2004019,2006669,3735312,4068469,3823831,411010,3644075,4189679,1324969,1233301,1516606,3343370,5097348,1982854,2413069,11708895,4552716,3995982,341717,761607,1765078,1154602,1745221,5148027,4917902,2539718,901902,4366150,4955264,601345,540588,4592913,4342230,2087266,3187258,541816,1195206,2187003,1179009,1592771,3677841,891247,1041017,4548493,1233221,5143482,3749093,4035221,526473,841544,853347,991778,5265440,3513260,1437345,2108767,3123925,901895,1765606,766091,4330891,1140380,361132,4813398,2242041,3058609,4212230,2825651,2198006,2441296,914463,3861067,190006,2976685,1341670,4622233,1424932,5088026,712567,1458447,2243010,2212167,3394215,5001954,4585793,1039778,11940971,1540037,4993685,287212,1087038,725363,5309160,3968153,4232885,2198003,5181263,2548718,3511078,4602877,685926,4548253,1700397,2210200,173694,4766958,4857155,1818519,4634455,4154975,4874254,1337253,855620,5532190,2927100,1945474,1788122,1579224,1309002,4559969,2583475,905527,4737981,1151230,4675389,1787106,5432637,3533877,5142869,1416455,4641871,3917091,2272004,229524,4046828,3901175,5063711,4131741,1395856,944058,1917770,3103708,5166275,3399374,2636423,1226040,3724721,4208339,2952744,4866696,122335,3068657,1038131,4848274,4189677,1744126,1110062,383752,2321950,1945204,3819580,1420912,1827193,3467228,2139906,2847176,4749462,4370662,4204618,3396573,528133,1290765,3136385,1471471,675581,2712974,4381935,4938976,3266579,1267377,2909293,1265789,1285542,2230924,237570,1522607,1205291,1618309,1044724,3001049,2945640,3343567,11675599,4750728,3105285,1230450,2609270,640904,2816155,4157994,3980633,4756273,4997622,4750754,4968180,1281522,1881518,3209925,219343,2828306,4792154,2965395,816733,1592947,11770140,4975550,1213116,4935781,2490315,2282144,2971050,3781974,971324,1334619,2297813,2135512,5056257,2497532,5244860,302006,649095,2968029,1859247,4803822,2829356,5001130,3995526,3606418,1340732,4189669,3949954,491965,12122721,2169915,4791150,3903991,4224124,1342061,3284823,959228,3518710,1744054,1002065,695483,2600248,1309286,1287968,731539,3239870,1178879,4528065,1559109,850169,3048627,5342726,4730514,4170784,1122579,3945858,503187,189144,773200,1750033,4732459,4972624,5046629,3377136,940582,1099858,736882,3435800,5104168,983433,2698201,2736011,3668211,1634036,1175500,4488485,3014478,1726866,4712897,3551592,172441,1063561,1035839,5394814,526161,1233223,2196377,3907324,4584726,718196,849951,4147398,3271376,1903689,1233783,3545435,2214425,4678178,525550,2380871,1496834,2965401,3510800,4552009,4445617,2364848,1152094,5026227,623357,4264348,4820226,4160605,3311156,910222,3347481,990609,1752638,921757,3334286,1671793,1086499,4016777,2780669,2647696,880037,2567493,3247991,1331712,4441415,1407972,1540028,986796,3672580,2593634,3334022,4344846,3072678,1103345,776644,3408822,4411648,4906143,1444232,884354,3751699,2114226,4380072,5006314,4094680,4798831,4927613,3145334,1192103,4335139,4810595,1516156,627718,5007968,1647807,1503879,1000543,854254,5121194,2216894,2865940,4265315,762245,4211865,5089271,574886,2863690,4364130,1182950,4091027,4344555,978684,1314785,4876029,642402,2742417,4717206,110457,4652465,1122823,1578193,1816748,1220826,4809275,862302,3649474,4284041,11663081,3735609,3341220,387714,117847,1852599,979038,522676,4219473,4154597,3722856,4071554,2462508,3699508,4273483,1944409,4746602,3301390,1233224,923050,1989517,4568294,2257452,3052055,2865924,4171185,4180981,5403138,2552201,1084306,4345605,3530228,1094736,4212093,234366,552990,731320,1746745,2963177,3564523,1089807,1135611,767320,4462467,1552422,5005865,1282733,4535400,1092029,3650344,11561385,2802858,1858815,2798974,2474326,4148202,2360361,2218809,3773626,4114893,2997563,2390101,4626529,2076287,4080329,1192164,1580963,737143,563118,5028644,1742051,2859029,1278896,1363919,1059013,1990546,1499452,3474996,5263833,1919778,298095,4576292,3369436,2543762,4329035,4918296,3748099,1622966,1261721,3734824,4510568,305551,3995560,3794165,1345967,1650237,3788407,3639055,526830,5142859,1937456,1647805,3311967,1744917,5432639,2609262,3408092,3546864,1077821,262688,4257297,1331225,5231662,202567,1426288,4301199,1729944,2825326,1796149,966272,1951407,1778687,4130051,4212238,2833305,1795529,747202,5148616,217210,1953922,941677,1437337,1142619,367578,129857,3832720,1030608,2503695,3479280,3833951,2948283,623365,4606781,1766254,4934740,891442,1731631,1255828,4345751,752740,3332179,3511016,4766933,4193772,3987809,5458089,530553,751340,2379122,625985,3067763,4220125,1277677,1153198,1223367,5425503,3710198,2967481,3566786,4614835,2248414,4577029,1544730,3897955,2505575,4843879,1801383,4859245,1686619,3940249,4536020,2362911,4654962,823030,955635,1687996,3887460,4370115,251340,3205266,1631634,1509560,3661198,931524,836257,1908296,1095130,3600353,3902900,2883267,2736262,3187402,2217908,1519444,5098209,4403047,4165709,1808465,3584691,4990654,2457630,5114933,1865268,3108251,3449903,351202,1256707,4338081,553114,2593913,3794329,4991030,3160225,5270291,213644,548500,2503502,1709989,3070139,1790005,285999,1668287,5522624,2353646,1680529,2411142,901900,2655477,773860,2286746,4218614,5008820,3521615,2202273,3608760,2268919,862561,3873744,1044731,5197636,4707358,4146552,2156386,2211938,409769,539412,3588387,2928870,2710503,4583473,2966536,4257400,2461229,298885,1584028,1185210,1865259,1044475,4742428,4978382,3833247,4230320,3176581,4238755,992316,4346841,1502321,1139040,2122602,1850546,5018426,3901917,2185122,2171990,2190107,189589,1279105,389256,2123419,11144230,3262435,1125725,2144477,717252,4646461,1291060,4708402,4175706,5059488,2524141,4938770,3368842,1256907,848232,1937454,4807433,1297484,2654464,3367949,4035443,4946344,2242159,1720644,1956782,4369742,3972377,1331212,2771999,1752648,3235712,3377132,490243,3239834,1787100,1218558,2584658,2952963,4979892,797248,12029797,4446146,816581,393198,1244148,5104172,1283995,1071514,1629709,952875,1956815,4143201,3176551,3322946,1332359,1098354,2736025,1940622,4285622,646212,5392182,2882192,11994316,2348736,1234974,1578164,1989565,4767304,1695486,1184853,971333,3751438,3874034,2714305,1171691,4796431,1074925,921136,3717848,5411889,4636587,2925346,1386250,3472877,1497491,975242,4890120,1404802,941781,1641076,2386450,3513171,3445259,1945294,2555137,1481064,1494332,3630231,1937465,2458781,12012505,1416497,2910169,1123962,1164158,3883943,3516352,1044476,1254637,973487,2181425,1662070,1094105,255798,2615934,2870951,4820890,1030422,4335054,3822824,2676432,3419592,5030916,331033,5326178,4112637,11252778,2738011,4930761,5007562,4306662,4066633,3419305,899777,1995645,401656,1723742,11270239,3597603,3834771,259585,222152,4461923,4695747,959838,1060294,1969175,1814632,862558,936649,3229100,2676072,819169,1102873,2209969,3154307,2140042,3696802,3979903,3206126,1286756,5277352,136434,3336020,3530884,1015488,1098456,3185775,4270245,617068,3670067,3673827,4670732,2882194,1044680,1183796,4611366,1060218,1262660,3882471,5364980,117835,4172906,3249223,3440502,2247302,5250744,854795,3075874,1592413,4764771,975234,2235846,871175,1859498,901907,5097658,4745936,3374599,1122682,880450,3432646,526472,397701,3922989,4502871,1277637,2693720,2639773,324839,5235823,1044479,508002,819972,188000,4914531,3751965,3648312,4679067,304733,4809804,2357558,4203535,675529,3960535,3704586,1103180,721134,4634765,3899636,615562,1010708,3924930,1577266,3580702,5250514,3739868,4201504,1459061,5475174,608883,3163742,958912,818049,3632079,2199790,1497424,4087436,5036602,3027578,1250255,4549866,3034802,5382868,1044732,2833247,4188962,4128624,3446713,5427840,3782671,2776671,1686641,1070188,3973459,1322638,4183208,3375323,4521540,5417039,5194028,1268117,2357091,2861662,5114740,3637788,3900955,1583844,2942414,3513163,3868931,4899768,2947731,5115049,847625,383760,4950734,4812752,2785264,2743357,2108760,901908,3151772,5371658,1343964,1157301,3976162,1732686,377876,5046625,901918,3751012,3792153,1722322,1410215,518779,1086094,765578,2683775,928963,1726849,1190587,5142861,675219,2155793,4138951,4315126,2804865,4026628,1204335,177633,2770050,11883657,3119738,1162552,2376965,3659407,5166293,3334298,5075528,1387890,1106925,1299611,2942446,1336257,3810286,10551133,5257706,319867,3244988,630130,3800262,4341307,1879521,642400,4800445,2205248,987413,5493806,1269288,3331857,3002054,1242549,4423476,1032745,4920436,4155303,11970722,10937943,5174700,3454449,2077357,4321054,1337239,4783089,727034,2699496,2014727,1586658,4161216,4310713,670773,3762258,874666,4226803,2187111,1111883,3153256,3419602,932783,3300145,4046216,5378494,2502079,3579609,791041,4488515,1506763,944853,2743359,4325427,2742383,4310054,351200,302018,1419129,4236160,4507945,4531685,4062346,3829099,1851151,3551100,1038138,5557076,4318286,4858234,1110668,2586594,4743696,4084711,1865160,2317870,4861276,4076405,4682921,1251076,1215587,12243320,2154141,1863219,3504318,4670730,1237545,1061857,2782752,2552450,1781266,865347,2268244,4058210,3595973,4784267,4661231,3866841,3427964,3176705,4934649,4824892,1026967,3972807,2481130,906023,287431,5142525,4397487,3133843,11835389,4858169,2963874,4727237,4907110,4230271,11097051,4295237,2510103,3020581,4533277,1151300,2823062,1154056,1159485,4638375,5130508,1068549,3928367,1178690,997669,2436862,2495993,3116448,3855510,2967593,1599405,5377180,1562085,1714158,636921,4066471,4580997,1723428,695466,4060213,1582533,1060156,2834053,1686626,2387698,388340,5037172,491525,1071472,1213121,674117,187678,5148163,2848323,4217526,4687290,1026965,3633553,1153107,4756271,2765584,4027651,2679821,852601,1218490,1110280,3104155,3849865,4134885,1175996,4503906,1823311,3370067,1016818,2723029,874232,3182191,4554266,5193865,2892856,3577985,2274608,4126244,5353304,1601353,5168887,255778,2248768,1566989,3023336,4242870,3853817,12109762,1294779,5026604,326136,2707121,2373721,3772555,2995994,1294085,1547752,265468,1404743,1039815,1304087,700393,1039813,1972174,423645,4202086,904084,2894348,1655174,11242172,3370506,5359210,11338691,5590416,553122,4273798,4323450,990979,2357973,4858252,1233215,3679921,2799225,3161995,3454833,564199,330122,1462651,3912635,3083217,2366311,5175117,4230811,2123647,2149341,2185730,623174,900872,4108515,1757964,1071504,875866,2525364,4791000,1335865,598290,1121698,4797193,4030905,954212,2932797,1238049,3991201,1990482,1168486,3752867,5333710,1254052,5189394,4449148,4525785,4422957,3715586,3831100,396725,2941304,4606144,206803,934267,1420110,3080225,1805866,999061,2003408,4878698,1609165,4508085,1173637,407959,4454757,3438670,11954069,4500628,1744820,1730749,3166633,4140148,3334146,5451938,1143024,2997011,2939920,1647187,3455236,4419586,285479,1030553,4854163,4142113,2728940,1020659,4750990,4174457,3438686,293863,891198,3011732,4881711,3442665,3343525,2299418,4470922,2274091,4304372,3464376,4934336,4478083,1199184,700392,927664,4383396,3627489,1744081,2825977,2892322,3903182,2538896,2805300,2688081,4661940,187706,4167780,3034786,853085,5175105,3505316,801071,3101157,2316993,594782,1162812,3746068,3969281,2150242,2925199,3991141,1867182,2314897,615566,383756,3989389,999495,2323982,862548,1144312,656993,1968817,3170842,251855,859445,3772783,4148212,2802852,3158768,4464368,1151223,3444240,4507816,3398866,4905658,5007536,1115182,1874685,4176511,3959337,1953181,4103763,1001601,3142453,11784098,11870829,3289005,1795538,388087,5074555,2460667,497496,4858633,4274539,1218054,4173042,4622747,931420,3340562,4160303,922837,252689,3613997,278130,1103186,11442162,3187762,3632682,3769180,1359506,169692,3025250,5114028,664372,1315320,380075,1321337,3766836,4565007,3206833,3539632,265940,4140384,1103183,1307479,3973364,832283,2455848,1306801,3843597,1080549,3682523,11788082,924691,2363591,1247005,4331326,3273327,5130158,2266585,4360693,2245164,1723762,1268177,4113814,3156378,5338244,941679,1205287,2989532,1257229,4469378,1977731,4208839,4718470,3857725,1043089,4803826,3961439,2483617,3403278,4412717,1211592,4939525,1103026,1098361,4344940,5346895,657542,4254754,4242468,1219921,786724,4721327,4782936,351851,883128,5050909,491963,971111,3842703,2982661,3400795,1914991,2740893,201851,3158798,3510330,654962,10099376,1278464,2855989,2942418,1159327,280903,819155,139356,962969,836065,3756787,12179885,4486444,3727797,4508057,5186671,4309882,3470636,4330444,1360765,757342,5023722,4202412,1203621,4106796,4610221,3980533,3158915,2496453,686437,1546381,5126566,1139027,2116791,3885683,2399249,1379151,1666712,4333597,574731,3926295,2653901,4619714,1636886,1433516,3125123,1026966,1270051,12023349,1431622,4676065,1012906,3266756,1636340,813728,1921912,4321261,582690,4887419,4614979,499985,1284280,3364876,1188310,1665947,698659,1113476,186053,2223001,4250433,5144468,5319596,2683232,1416457,1030735,3735811,1653203,1078170,3911206,5137682,5001173,4521474,1735451,528474,4791162,2830193,4373181,1340200,940952,1121146,202874,4808697,910144,3867555,1506256,943378,4232665,3169441,5242328,3060907,1752649,1298414,922533,5051507,2004617,5218213,1308704,4822392,2165630,1657875,1931631,3140998,232410,1356197,3948347,3727809,2457401,3342934,311730,11521816,2029441,2529589,2232433,525268,1215520,1256867,901901,1865260,880971,5325336,3965595,3995519,5226828,1739884,1703026,3542209,2210227,4368732,1117123,1670627,1443156,4397416,1191481,1028759,3111785,5050274,2237344,999344,372861,12171204,3761618,1261831,1251013,237547,1720704,1082520,4263928,1365733,840002,3249925,805452,3923387,1865083,4659924,4535404,2314247,5417670,3842711,4196419,11954631,1592206,4459247,5148876,3763297,1937460,429559,1043860,1143036,1374540,1445127,4340205,2442820,915477,1744123,12010266,1579674,2029437,4968121,108364,4061666,4646437,3459483,618005,4226635,4474607,2379111,3016367,1138288,1119593,2292551,3379813,3457999,3622348,1949048,2460102,3659204,4954677,680533,2306166,2197112,3310884,388616,4675613,1405290,4265268,1709997,1084742,1073455,1282017,4636780,960055,4200281,2828950,3695463,3034364,188081,3112881,4151801,4713939,2307485,1282784,4377817,3318118,11253398,4380118,1129205,1942215,1632831,3341427,2820003,4979920,875858,327492,2184343,1143679,4749231,1323150,2857506,862244,2198013,4713572,3984656,1783785,1941282,846169,183501,4566637,3888009,1233220,1491681,4493643,5223641,3126050,4033790,251308,967824,119525,1583251,1503650,1778787,2808516,1181186,5320168,4042615,703515,3586583,2256292,1751460,5235867,5604988,4791994,4489922,4672676,5402880,4695735,744264,1788770,218256,1431731,1319140,4974266,552868,1200150,2525099,1550214,346059,545960,4114019,1978117,4680287,901917,1069439,4932622,2873255,186049,5353929,4657814,329873,11939734,4489971,1744242,5187572,772929,2212459,374242,879183,3360436,5321312,5168732,967968,2796663,367961,728844,4113299,1118434,1297612,2832511,5102898,4844996,3728407,3749095,3046871,4902470,3241721,4856545,1034188,1601354,955255,3843583,4369472,905198,1317138,4435312,1580693,285740,11678353,1289069,2880446,3494259,1318575,2138227,1831758,2117903,3680701,1083404,1326527,1521782,4220523,2360421,414725,2004032,1713200,924232,1919203,10951037,4295503,5175810,1220850,2454606,631621,1864998,749250,1762518,280977,3697281,2324637,1170094,2149281,2364796,351201,4174649,2849542,2157070,283596,265894,4860246,1355606,694807,524759,629797,656998,1709905,3508320,4158802,4664136,2357689,1098359,848830,715809,3710861,2631176,2900861,4712716,581162,1324614,1099360,5050039,771351,884718,5232716,1039799,923329,986795,641729,4977676,1692215,818611,1944390,1766255,4899060,4708528,1933201,1132207,981759,2245501,3278730,1833248,3951872,210054,1113951,5357830,4199627,3844718,1531704,1029175,1700884,530848,978680,3884740,2343127,4431603,4215115,731326,4990912,2034591,3810703,3714862,1196493,4528093,4043600,4758318,1266806,4483022,1298305,703213,1306143,2568622,1036613,12213172,4689017,2460752,2359754,1151846,1114555,3244966,2139901,226527,1088268,4338269,2787063,3850466,1892028,5525866,5180737,255803,4041645,5151404,1738008,3761983,1254227,1956826,5431646,1240222,2231233,434082,1459440,4425164,954209,3894497,3730250,548501,566690,4527606,2930900,2264531,2770715,1322627,4249952,3723872,1448102,1686562,4928026,1335208,2750875,1119366,990687,4622697,633365,5114502,11281831,2858182,4918616,1590425,2848272,4855788,1152042,1138687,2827952,3458001,3229433,437314,3919597,1419142,1884121,1887628,3012303,5222158,3764672,2688012,3069895,1482527,1296662,5433250,1434937,4262984,898622,4334976,1123422,4447013,594835,1774724,968377,1559009,1069304,3333424,3470770,752906,1229025,831075,1039868,283683
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("pageNum",pageNum);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SKU.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<String> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<String>>(){}.getType());
		return jdResult.getResult();
    }
   
    //3.3 获取池内商品编号接口-品类商品池（兼容老接口）
    public static SkuByPage getSkuByPage(String pageNum,String pageNo){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("pageNum",pageNum);
		jsonObject.put("pageNo", pageNo);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SKU_BY_PAGE.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = new Gson();
		JdResult<SkuByPage> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<SkuByPage>>(){}.getType());
		return jdResult.getResult();
    }
    //3.4 获取商品详细信息接口
    public static Detail getDetail(String sku, String isShow){
    	JdResult<Detail> jdResult = null;
    	String	retJsonStr ="";
		try {
			JSONObject jsonObject=new JSONObject();
			jsonObject.put("token",JDUtil.getAccessToken());
			jsonObject.put("sku",sku);
			jsonObject.put("isShow",isShow);
			retJsonStr = HttpUtils.doPost(GoodsEnum.GET_DETAIL.getMethod(), jsonObject);
			Gson gson = new Gson();
			jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<Detail>>(){}.getType());
		} catch (Exception e) {
			logger.error("getDetail, retJsonStr="+ retJsonStr+", error="+e.getMessage());
			e.printStackTrace();
			return null;
		}
		return jdResult.getResult();
    }
    
    //3.5 获取商品上下架状态接口
    public static String skuState(String sku){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku",sku);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SKU_STATUS.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = new Gson();
		JdResult<List<SkuStatus>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<SkuStatus>>>(){}.getType());
		return jdResult.getResult().get(0).getState().toString();
    }
    
    //3.6 获取所有图片信息
    public static Map<String, List<SkuImage>> skuImage(String sku){
    	JdResult<Map<String, List<SkuImage>>> jdResult = null;
    	String	retJsonStr ="";
		try {
			JSONObject jsonObject=new JSONObject();
			jsonObject.put("token",JDUtil.getAccessToken());
			jsonObject.put("sku",sku);
			retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SKU_IMAGE.getMethod(), jsonObject);
			Gson gson = new Gson();
			jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult< Map<String, List<SkuImage>>>>(){}.getType());
		} catch (Exception e) {
			logger.error("skuImage, retJsonStr="+ retJsonStr+", error="+e.getMessage());
			e.printStackTrace();
			return null;
		}
		return jdResult.getResult();
    }
    //3.7 商品好评度查询，参数：商品编号，支持批量，以，分隔  (最高支持50个商品)
    public static List<CommentSummarys> getCommentSummarys(String sku){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku",sku);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_COMMENTSUMMARYS.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<List<CommentSummarys>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<CommentSummarys>>>(){}.getType());
		return jdResult.getResult();
    }
    
    //3.8 商品区域购买限制查询
    public static String checkAreaLimit(String skuIds,String province, String city, String county, String town){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("skuIds",skuIds);
		jsonObject.put("province",province);
		jsonObject.put("city",city);
		jsonObject.put("county",county);
		jsonObject.put("town",town);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_CHECK_AREA_LIMIT.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		return retJsonStr;
    }
   
	public static void main(String args[])throws Exception{
		/*List<PageNum> list = getPageNum(); //3.1接口测试
		int i = 0;
		for(PageNum pageNum:list){
			i=i+1;
			System.out.println(i+":name-->"+pageNum.getName()+" num-->"+pageNum.getPage_num());
		}*/
		//System.out.println(getSku("18050832"));//3.2接口测试
		//System.out.println(getSkuByPage("18050832","1"));//3.3 获取池内商品编号接口-品类商品池
		//System.out.println(getDetail("1876324","false"));//3.4接口测试
		//skuState("206770");//3.5 获取商品上下架状态接口测试
		skuImage("816570");//851446 816570  750691
		//System.out.println(skuImage("6119586"));//3.6 获取所有图片信息
		//System.out.println(getCategorys("1", "10", "1583", "1"));
		//SearchResult re = search("包尔星克 电脑主机显示器电饭煲电水壶家用电器电源线品字尾 黑色0.5米（PowerSync）MPCPRX0050", "", "1", "10", "", "", "");
		//System.out.println("查询成功");
		//System.out.println(search("", "655", "", "", "", "", ""));
		//System.out.println(search("", "655", "", "", "", "", ""));

		//System.out.println(getSkuGift("", "", "", "", ""));
		//System.out.println(getSku("10"));
		// 435168,207551,1338049,1351487,1421728,1458435,840211,983507
		//getSellPrice("206770");
		//getJdPrice("1814527");
		//getPrice("1814527");
		//getDetail("569200", "true");


		/*List<CommentSummarys> list = getCommentSummarys("1421728,1458435");
		for (CommentSummarys commentSummarys : list) {
			System.out.println(commentSummarys.getGeneralRate());//3.7 商品好评度查询
		}*/
		//System.out.println(getCommentSummarys("1421728,1458435"));
		//System.out.println("" + getSkuGift("1421728,1458435","1","2800","2800","2812"));
		/*List<AreaLimit> list = checkAreaLimit("1421728,1458435","1","2800","2800","2812");
		for (AreaLimit areaLimit : list) {
			System.out.println("skuId-->" + areaLimit.getSkuId() + ",是否受限：" + areaLimit.getIsAreaRestrict());
		}*/
		/*System.out.println("aaa");*/
		//System.out.println(getFreight("1421728,1458435","1","2800","2800","0", "1"));	
		/*List<Check> list = check("102194,10219");
		for (Check check : list) {
			System.out.println("输出结果：" + check.getSkuId());
			System.out.println("输出结果：" + check.getName());
		}*/
		//System.out.println("输出结果：" + getYanbaoSku("1421728,1458435","1","2800","2800","0"));
		//System.out.println("输出结果" + getCategory("670"));
		//System.out.println(getCategorys("1", "500", "0", ""));
		//System.out.println(getSimilarSku("5099903"));
		//System.out.println(list);
		//System.out.println(list);
		//System.out.print("输出结果" +JsonUtils.objectToJson(list));
		/*for (SimilarSku similarSku : list) {
			//System.out.println(similarSku);
	/*	List<SimilarSku> list2 = getSimilarSku("1");
		System.out.print("输出结果" +JsonUtils.objectToJson(list2));
		for (SimilarSku similarSku : list2) {
			System.out.println(similarSku);
			System.out.println("输出结果：" + similarSku.getSaleName());
		}*/
		
		//getUpOrDownMessage("4");
		//getDeleteOrAddMessage();
		//getStockById("5674136", "19_1601_3634_0");
		//checkAreaLimit("1421728","1","2800","2800","2812");
	}
	
	/**
	 * SCJ-20171218-01
	 * 3.9 商品区域是否支持货到付款
	 * @param skuIds
	 * @param province
	 * @param city
	 * @param county
	 * @param town
	 * @return
	 */
	
	public static String getIsCod(String skuIds, String province, String city, String county, String town){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("skuIds",skuIds);
		jsonObject.put("province",province);
		jsonObject.put("city",city);
		jsonObject.put("county",county);
		jsonObject.put("town",town);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_IS_COD.getMethod(), jsonObject);
	/*	Gson gson = new Gson();
		JdResult<String> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<String>>(){}.getType());*/
		return retJsonStr;
	}
	
	/**
	 * SCJ-20171218-02
	 * 3.10 查询赠品信息接口
	 * @param skuId
	 * @param province
	 * @param city
	 * @param county
	 * @param town
	 * @return
	 */
	public static GiftsResult getSkuGift(String skuId, String province, String city, String county, String town){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("province",province);
		jsonObject.put("city",city);
		jsonObject.put("county",county);
		jsonObject.put("town",town);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SKU_GIFT.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<GiftsResult> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<GiftsResult>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * cheng-20171219-01
	 * 3.11 运费查询接口
	 * @param skuId
	 * @param province
	 * @param city
	 * @param county
	 * @param town
	 * @param paymentType
	 * @return
	 */
	public static String getFreight(String sku, String province, String city, String county, String town,String paymentType){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku", sku);
		jsonObject.put("province",province);
		jsonObject.put("city",city);
		jsonObject.put("county",county);
		jsonObject.put("town",town);
		jsonObject.put("paymentType", paymentType);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_FREIGHT.getMethod(), jsonObject);
		return retJsonStr;
	}
	
	/**
	 * SCJ-20171218-04
	 * 3.12 商品搜索接口
	 * @param keyword
	 * @param catId
	 * @param pageIndex
	 * @param pageSize
	 * @param min
	 * @param max
	 * @param brands
	 * @return
	 */
	public static SearchResult search(String keyword, String catId, String pageIndex, String pageSize, String min, String max, String brands){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("keyword",keyword);
		jsonObject.put("catId",catId);
		jsonObject.put("pageIndex",pageIndex);
		jsonObject.put("pageSize",pageSize);
		jsonObject.put("min",min);
		jsonObject.put("max",max);
		jsonObject.put("brands",brands);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.SEARCH.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = new Gson();
		JdResult<SearchResult> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<SearchResult>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * cheng-20171219-02
	 * 3.13 商品可售验证接口
	 * @param keyword
	 * @param skuIds
	 * @return
	 */
	public static List<Check> check(String skuIds){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("skuIds",skuIds);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.CHECK.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<List<Check>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<Check>>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * cheng-20171219-03
	 * 3.14 查询商品延保接口
	 * @param keyword
	 * @param skuIds
	 * @return
	 */
	public static String getYanbaoSku(String skuIds, String province, String city, String county, String town){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("skuIds", skuIds);
		jsonObject.put("province",province);
		jsonObject.put("city",city);
		jsonObject.put("county",county);
		jsonObject.put("town",town);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_YANBAO_SKU.getMethod(), jsonObject);
		/*Gson gson = new Gson();
		JdResult<List<Check>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<Check>>>(){}.getType());*/
		return retJsonStr;
	}
	
	/**
	 * cheng-20171219-04
	 * 3.15 查询分类信息接口
	 * @param keyword
	 * @param skuIds
	 * @return
	 */
	public static CategoryVo getCategory(String cid ){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("cid", cid);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_CATEGORY.getMethod(), jsonObject);
		//System.out.println("getCategory-->" + retJsonStr);
		Gson gson = new Gson();
		JdResult<CategoryVo> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<CategoryVo>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * SCJ-20171218-03
	 * 3.16 查询分类列表信息接口
	 * @param pageNo
	 * @param pageSize
	 * @param parentId
	 * @param catClass
	 * @return
	 */
	public static CategoryList getCategorys(String pageNo, String pageSize, String parentId, String catClass){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("pageNo",pageNo);
		jsonObject.put("pageSize",pageSize);
		jsonObject.put("parentId",parentId);
		jsonObject.put("catClass",catClass);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_CATEGORYS.getMethod(), jsonObject);
		//System.out.println("getCategorys -- >" + retJsonStr);
		Gson gson = new Gson();
		//JdResult<Map<String, Object>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<Map<String, Object>>>(){}.getType());
		JdResult<CategoryList> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<CategoryList>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * cheng-20171218-06
	 * 3.17 同类商品查询
	 * @param pageNo
	 * @param pageSize
	 * @param parentId
	 * @param catClass
	 * @return
	 */
	public static List<SimilarSku> getSimilarSku(String skuId){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("skuId",skuId);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SIMILAR_SKU.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<List<SimilarSku>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<SimilarSku>>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * SCJ-20171222-01
	 * 5.1 批量查询京东价价格
	 * @param pageNo
	 * @param pageSize
	 * @param parentId
	 * @param catClass
	 * @return
	 */
	public static List<SellPriceResult> getJdPrice(String sku){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku",sku);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_JD_PRICE.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = new Gson();
		JdResult<List<SellPriceResult>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<SellPriceResult>>>(){}.getType());
		return jdResult.getResult();
	}
	
	/**
	 * SCJ-20171221-01
	 * 5.2 批量查询协议价价格
	 * @param pageNo
	 * @param pageSize
	 * @param parentId
	 * @param catClass
	 * @return
	 */
	public static List<SellPriceResult> getPrice(String sku){
		List<SellPriceResult> result= new ArrayList<SellPriceResult>();
		try {
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("token", JDUtil.getAccessToken());
			jsonObject.put("sku", sku);
			String retJsonStr = HttpUtils.doPost(GoodsEnum.GET_PRICE.getMethod(), jsonObject);
			//System.out.println(retJsonStr);
			Gson gson = new Gson();
			JdResult<List<SellPriceResult>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<SellPriceResult>>>() {
			}.getType());
			result= jdResult.getResult();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	
	
	/**
	 * SCJ-20171219-03
	 * 5.3 批量查询商品售卖价
	 * @param pageNo
	 * @param pageSize
	 * @param parentId
	 * @param catClass
	 * @return
	 */
	public static List<SellPriceResult> getSellPrice(String sku){
		JdResult<List<SellPriceResult>> jdResult = null;
    	String	retJsonStr ="";
		try {
			JSONObject jsonObject=new JSONObject();
			jsonObject.put("token",JDUtil.getAccessToken());
			jsonObject.put("sku",sku);
			retJsonStr = HttpUtils.doPost(GoodsEnum.GET_SELL_PRICE.getMethod(), jsonObject);
			Gson gson = new Gson();
			jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<SellPriceResult>>>(){}.getType());
		} catch (Exception e) {
			logger.error("getSellPrice, retJsonStr="+ retJsonStr+", error="+e.getMessage());
			e.printStackTrace();
			return null;
		}
		return jdResult.getResult();
	}
	
	
	/**
	 * <p>Description: 获取商品价格变更及上下架消息2/4</p>
	 *  @author scj  
	 *  @date 2018年5月29日
	 */
    public static List<MessageResult> getUpOrDownMessage(String type){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("type",type);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = JDUtil.getGson();
		JdResult<List<MessageResult>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<MessageResult>>>(){}.getType());
		return jdResult.getResult();
    }
    
    /**
     * <p>Description: 获取添加、删除商品池内商品消息</p>
     *  @author scj  
     *  @date 2018年5月29日
     */
    public static List<MessageAddOrDelete> getDeleteOrAddMessage(){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("type","6");
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = JDUtil.getGson();
		JdResult<List<MessageAddOrDelete>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<MessageAddOrDelete>>>(){}.getType());
		return jdResult.getResult();
    }
    /**
     * <p>Description: 消息的删除</p>
     *  @author scj  
     *  @date 2018年5月30日
     */
    public static boolean deleteMessage(String id){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("id",id);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.DEL.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<Boolean> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<Boolean>>(){}.getType());
		return jdResult.getResult();
    }
	
	//2.12 zlk  根据SkuId 获取商品详细信息接口
    public static JdResult<Sku> getDetailBySkuID(String sku, String isShow){
    	JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku",sku);
		jsonObject.put("isShow",isShow);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_DETAIL.getMethod(), jsonObject);
		Gson gson = new Gson();
		JdResult<Sku> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<Sku>>(){}.getType());
		return jdResult;
    }
	
	//2018.6.25 zlk  查询库存
	public static String getStockById(String sku, String area){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku", sku);
		jsonObject.put("area",area);

		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_StockById.getMethod(), jsonObject);
		return retJsonStr;
	}
	
	public static List<Stock> getStockByIdOther(String sku, String area){
		JSONObject jsonObject=new JSONObject();
		jsonObject.put("token",JDUtil.getAccessToken());
		jsonObject.put("sku", sku);
		jsonObject.put("area",area);
		String	retJsonStr = HttpUtils.doPost(GoodsEnum.GET_StockById.getMethod(), jsonObject);
		//System.out.println(retJsonStr);
		Gson gson = new Gson();
		JdResult<List<Stock>> jdResult = gson.fromJson(retJsonStr, new TypeToken<JdResult<List<Stock>>>(){}.getType());
		return jdResult.getResult();
	}
	
}
